2012-09-06 4 views
1

주어진 텍스트의 기존 URL을 regex를 사용하여 새 URL로 바꾸려고합니다. 아래는Regex를 사용하여 주어진 텍스트의 기존 URL을 새 URL로 바꿉니다.

"<A href=\"http://domain/page.asp?id=38957&amp;oid=2497&amp;type=JPG\">" 

:

string regex = "<a href=\"http://domain/page.asp?id=(\\d+)&amp;oid=(\\d+)&amp;type=(\\w+)\">"; 

누군가 날과 같이 URL을 찾을 수있는 올바른 패턴을 쓰기 도움을 주시겠습니까 : 내가 사용하고 정규식 패턴에 대한 일치를 얻을하지 않는 것 내가 사용 패턴에 일치하는 항목을 찾을 수 없습니다 내 테스트 코드 :

string result = string.Empty; 

string sampleText = "<A href=\"http://domain/page.asp?id=38957&amp;oid=2497&amp;type=JPG\"><U>Click here for Terms &amp; Conditions...</U></A>"; 

string regex = "<a href=\"http://domain/page.asp?id=(\\d+)&amp;oid=(\\d+)&amp;type=(\\w+)\">"; 
     Regex regEx = new Regex(regex, RegexOptions.IgnoreCase); 

result= regEx.Replace(text, "<a href=\"/newPage/Index/$1&opid=$2)\">"); 
+0

"작동하지 못할 수 있습니다."매우 설명 적이 지 않습니다. 작동하지 않는 것은 무엇입니까? 오류? 예외? _expect_와 _is_ 일어나는 일을 게시하십시오. – Oded

+1

'관련'목록에 정확한 복제물을 선택하는 것은 매우 어렵습니다. 그러나 Regex를 사용하지 마십시오. [Html Agility Pack] (http://htmlagilitypack.codeplex.com/) – Steve

+0

@Steve가 [Uri]와 함께 말한 내용 (http://msdn.microsoft.com/ko-kr/library/). com/en-us/library/system.uri.aspx) 클래스를 사용하여 HAP을 사용하여 URL을 파싱합니다. – Oded

답변

1

모든 것이 .?는 정규 표현식에서 특수 문자 것을 제외하고 잘 보이는, 따라서 그들은 리터럴로 취급되기 위해 탈출해야합니다. 그래서 표현 :

string regex = "<a href=\"http://domain/page.asp?id=(\\d+)&amp;oid=(\\d+)&amp;type=(\\w+)\">"; 

요구가되게합니다 : .?의 앞에

string regex = "<a href=\"http://domain/page\\.asp\\?id=(\\d+)&amp;oid=(\\d+)&amp;type=(\\w+)\">"; 

참고 백 슬래시.

관련 문제