2011-07-01 3 views
2

HTML 소스 코드의 앵커 태그는 일반적으로 C#에서 정규 표현식이 필요합니다. 다음과 같은 html 코드를 고려해보십시오.C#의 앵커 HTML 태그에 대한 정규 표현식?

<a id="[constant]" 
     href="[specific]" 
    >GlobalPlatform Card Specification 2.2 
    March, 2006</a> 

[상수] By [상수] 값이 상수이므로 문제가 없습니다. [구체적으로] 나는 주소가 간단하고 구체적인 문자열이므로 정규 표현식이 간단하다는 것을 의미합니다. 주된 문제는 앵커 태그의 제목 중간에 개행 문자를 처리 할 수 ​​없다는 것입니다. 이전에 앵귤러 태그 제목 사이에 줄 바꿈 문자를 처리하는 것 외에는 잘 작동하는이 정규 표현식을 작성했습니다.

<a[\\s\\n\\r]+id=\"[constant]"[\\s\\n\\r]+href=\"[specific]"[\\s\\n\\r]*>[\\s\\n\\r]*[^\\n\\r]+[\\s\\n\\r]*</a> 

는 HTML을 구문 분석하고 HTML Agility Pack 같은 HTML 파서를 사용할 때 나를

답변

6

당신은 정규 표현식을 멀리해야 도와주세요.

그리고 처음 단 하나의 앵커 태그를 구문 분석하는 것이 얼마나 간단한 지 확인하십시오.

HtmlDocument doc = new HtmlDocument(); 

doc.LoadHtml(@"<a id=""[constant]"" 
     href=""[specific]"" 
    >GlobalPlatform Card Specification 2.2 
    March, 2006</a> 
"); 

var anchor = doc.DocumentNode.Element("a"); 

Console.WriteLine(anchor.Id); 
Console.WriteLine(anchor.Attributes["href"].Value); 

정규식보다 높습니까? :)

+0

내가 그것을 을 찾을 수 있습니다

Regex r = new Regex(pattern, RegexOptions.Multiline); 
? – moorara

+0

답변에 링크를 제공했습니다. –

2

당신은 C#을 정규식을 만드는 동안 옵션 여러 줄을 정의 할 수 있습니다를 사용하는 경우,