xml 또는 html을 구문 분석하기 위해 regex를 사용하지 마십시오. 그것은 가치가 없어. 나는 this post을 읽게하고, 그 점을 excerates의 일종,하지만 염두에 두어야 할 주된 것은 당신이 정규식과 html로 많은 문제가 될 수 있다는 것입니다.
대신 html/xml 파서를 사용해야합니다. 우선, .net 프레임 워크에 내장 된 클래스 인 XElement
을 사용하십시오.
string input = "<iframe width=\"420\" height=\"315\" src=\"//www.youtube.com/embed/8GRDA1gG8R8\" frameborder=\"0\" allowfullscreen=''></iframe>";
XElement html = XElement.Parse(input);
string src = html.Attribute("src").Value;
이 src
이 값 //www.youtube.com/embed/8GRDA1gG8R8
을 만들 것입니다. 그런 다음 원하는 것을 얻을 수 있도록 분할 할 수 있습니다.
입력 내용이 xml이 아닙니다. allowfullscreen
에는 값이 첨부되어 있지 않으므로 =''
을 추가 한 것입니다.
입력과 같이 좀 더 복잡하게해야하는 경우 HTML 구문 분석기 (XElement
은 xml 용)를 사용하십시오. (앞의 예를 사용하여)이 같은 Html Agility Pack을 사용
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(input);
string src = doc.DocumentNode
.Element("iframe")
.Attributes["src"]
.Value;
이 파서는 유효하지 않거나 올바르지 않은 (또는 불규칙한) 입력에 대한 더 관대하다. 이렇게하면 원래 입력을 잘 해석 할 수 있으므로 (=''
이 누락 됨).
왜 여기서 정규식을 사용 하시겠습니까? is는 XML 구조를 가지고 있으므로'XDocument' 인스턴스에 전달하지 않으시겠습니까? –
[Obligitory "regex로 html을 구문 분석하지 마십시오"링크 (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags). 실제로, 대신 html 파서를 사용하십시오. – gunr2171
Ofcourse, 이것은 HTML, 어리 석다. 최근 XML로 작업 해 왔습니다. 실제로 HTML 파서를 사용하는 것이 좋습니다. –