2010-02-22 6 views
0

나는 HTML 페이지에 대한 링크 재 작성을 수행하는 C#을 Regex를 사용해야하고 난 내 자신의 사람과 따옴표 (")로 묶인 링크를 교체해야합니다. 예를 들어, 나는 다음과 같은 교체 할 필요가 말.NET Regex로 링크 재 작성을 수행하는 방법은 무엇입니까?

"slashdot.org/index.rss" 
befor을 제공 다른 값이 될 수있는

"MY_OWN_LINK" 

그러나 실제 링크 형태

"//slashdot.org/index.rss" or 
"/slashdot.org/index.rss" 

될 수 e "slashdot.org/index.rss"하지만, 내가 신경 쓰지 않는 따옴표 (") 뒤에.

요약하면 링크가 "slashdot.org/index.rss"으로 끝나는 한 전체 링크를 "MY_OWN_LINK"으로 바꾸고 싶습니다.

어떻게 위의 대한 Regex.Replace 사용할 수 있습니까?

+1

은 HTML에 대한 정규 표현식을 사용하지 마십시오. 심각하게 나쁜 아이디어입니다. 또한 요구 사항이 무엇인지 명확히 알지 못했습니다. –

+0

@Lopper : JavaScript와 달리 C# 프로그래밍 언어는 정규 표현식을 지원하지 않습니다. –

+0

@ 존 손더스 : 응? .NET 언어는 JavaScript보다 훨씬 나은 정규 표현식 지원을 제공합니다. –

답변

0

편집 : 코멘트에 따른 업데이트 대답.

첫째, 당신은이 작업을 위해 정규 표현식을 사용할 필요가 없습니다. 그냥 문자열이``slashdot.org/index.rss ''로 끝나는 지 확인하고, 그렇다면 문자열 전체를 바꿉니다.

것은 당신이 정규 표현식을 사용하는 경우, 당신은 너무 좋아, 더 나은 단지 문자열이 "slashdot.org/index.rss"로 끝나는 여부를 테스트하고 그에 따라 행동 것 :

if (Regex.IsMatch(str,"slashdot.org/index\.rss$")) {str = new_str;} 

당신이 Regex.Replace를 사용을한다면, 갈 ^ 라인/문자열에 대한 $ 스탠드는 각각/끝을 시작

Regex.Replace(str,"^.*slashdot.org/index\.rss$","MY_OWN_LINK"); 

. 첫 번째 .*은 "URL의 시작을 캡처합니다."라는 의미입니다. 마지막 점은 대개 "모든 문자"를 의미하므로 슬래시가 붙습니다.

추가 정보를 들어, C#으로 정규 표현식의 cheat sheet를 참조하십시오.

+0

과 같은 전체 문자열과 일치하도록 시작 부분과 끝 부분에 ^를 붙일 수도 있습니다. "slashdot.org/index.rss"로 끝나는 한 "MY_OWN_LINK"과 (과) 전체 링크는 일부만 교체하는 것이 아닙니다. – Lopper

+0

그래서 더 나은 방법으로 링크 EndsWith ("slashdot.org/index.rss")가 있는지 테스트하고, 그렇다면 전체 문자열을 바꾸십시오. http://msdn.microsoft.com/en-us/library/system.string.endswith(VS.71).aspx –

+0

BTW, 정규 표현식에서 발견 된 각 요소를 정의하는 msdn 페이지는 어디서 찾을 수 있습니까? 문자열 ('.', '[]'등)은 무엇입니까? – Lopper

1

이보십시오. 슬래시, 단일 및 두 개의 슬래시없이 작동합니다.

string pattern = @"[/]{0,2}slashdot\.org[/]{0,2}index\.rss"; 
    test1 = Regex.Replace(test1, pattern, "MY_OWN_LINK"); 
+0

"[Anystring] slashdot.org/index.rss"의 패턴은 무엇입니까 [Anystring]는 어디에 있습니까? 어떤 길이의 문자열과도 일치 할 수 있으며 "slashdot.org/index.rss"이전의 값일 수 있습니다. – Lopper

+0

. *. * slashdot \ .org [/] {0,2} index \ .rss "를 사용할 수 있습니다. 위험 할 수 있으므로 신중하게 사용하십시오. \ ". * slashdot \ .org [/] {0,2} 인덱스 \ .rss $" –

관련 문제