2011-12-19 2 views
0

간단한 마크 업 수정을해야합니다. 이미 굵은 글씨체와 기울임 꼴 등 필요한 모든 작업을 수행했습니다.하지만이 작업은 지금까지 한 작업보다 조금 힘들고 어떻게해야할지 모르겠습니다. 기본적으로 내 입력은 매우 간단합니다 :찾기 및 바꾸기 - Regex를 사용해야합니까?

[imgGroup="group1"] 
image1.jpg 
[/imgGroup] 

당신은 내가 group1 인 PARAM을 통과하고 난 image1이 내부를 볼 수 있듯이. 그러나 나는 단지 뭔가를 찾는 방법을 알고,

<a href="image1.jpg" rel="group1" > 
    <img src="image1.jpg" /> 
</a> 

나는이 문제에 대한 정규식을 사용할 필요가 있다고 생각 : 그래서 같은 확인해 태그에서이 내부 이미지와 그룹이 링크로이 변환해야 2 태그 사이에,이 문제에 대한 순전히 ... ASP.NET MVC3 C# 함께 사용하고 있습니다. 정규식에서

+3

[markdownsharp] (http://code.google.com/p/markdownsharp/)와 같이 이미 설계된 도구를 사용하는 대신 다른 마크 업을 다시 작성해야하는 이유는 무엇입니까? 바퀴를 다시 열지 마십시오. regexes를 사용하지 마십시오. 모든 가능한 경우를 예상하는 것은 거의 불가능하기 때문에 해커에 의해 피해를 입을 것입니다. –

+0

예, 있습니다. Shadobox.js 플러그인을 사용하여 이미지를 전달하려고합니다. 특정 마크 업이 필요합니다. http://www.shadowbox-js.com/usage.html – sed

+0

행운을 빈다. –

답변

0

당신은 이름을 사용할 수있는 그룹이 다음 당신이 원하는 순서로 다시 조립할 수와 일치합니다 :

var regex = new RegEx(("$1(\d\s)$2([a-z])"); // Set up your regex with named groups 
var result = regex.Replace("inputstring", "$2 $1"); // Replace input string with the given text, including anything matched in the named groups $1 and $2 

그래도주의 할, 정규식 URL과 HTML 구문 분석 같은 것들과 함께 할 수있는 매우, 매우 빠르게 당신의 가장 꿈을 초월한 공포로 변합니다.)

행운을 빈다!

Named groups for RegEx in dot net

+0

고마워,하지만이 태그에 액세스 할 수있는 유일한 사람이 될 것이므로 나는 괜찮을 것이라고 생각한다. – sed

0

여기 당신을 위해 내 제안이다 : 당신이 예상 한 무엇을해야

var regex = new Regex(@"\[imgGroup=" + "group1" + @"\]\s*(?<Content>\S*)\s*\[imgGroup\]"); 
var newValue = regex.Replace(oldValue, @"<a href=""$1"" rel=""group1"" ><img src=""$1"" /> </a>); 

.