HTML 소스에서 FONT 태그 내부에 다음 세 가지 속성 (순서는 관계 없음)이있는 간단한 텍스트를 추출해야합니다. size = 5, color = "red", face = "verdana".html 태그의 속성을 검사하기위한 정규 표현식
정규식은 예를 들어 마지막 4 개를 제외한 다음의 "임의 문자"를 모두 추출해야합니다.
<\s*font(?=[^>]*\s+size\s*=\s*5)(?=[^>]*\scolor\s*=\s*["']red["'])(?=[^>]*\sface\s*=\s*["']verdana["'])[^>]*>\s*([^<]+?)\s*<\s*/font\s*>
문제가 있다는 것입니다 : ... 이상 HTML 유연성
<font(?=[^>]* size=5)(?=[^>]* color="red")(?=[^>]* face="verdana")[^>]*>([^<]+)</font>
:
<font size=5 color="red" face="verdana">randomtext</font>
<font size=5 face="verdana" color="red">randomtext</font>
<font color="red" size=5 face="verdana">randomtext</font>
<font color="red" face="verdana" size=5>randomtext</font>
<font face="verdana" size=5 color="red">randomtext</font>
<font face="verdana" color="red" size=5>randomtext</font>
<font size=5 size=5 size=5>randomtext</font>
<font face="verdana" color="red" size=5 foobar="random">randomtext</font>
<font face="verdana" color="red" size=5 foobar="random=pippo">randomtext</font>
<font face="verdana" color="red" size=5 garbagetext>randomtext</font>
나는 3보기 이것은 미리를 사용하여 "임의의 순서로"문제를 해결 그것은 또한 마지막 세 가지와 일치합니다. 일치하는 항목을 제외하려면 어떻게해야합니까? (분명 일반 및 합리적인 짧은/효율적인 방법으로, 즉 가능한 모든 긍정적 인 조합을 codyfing없이 문자 부정적인 내 예에서만 작동 식을 사용하지 않고)
어떤 언어를 사용하고 있습니까? 이 작업은 적절한 HTML 구문 분석 라이브러리로 훨씬 쉽게 처리됩니다. –
Michael, 언어 독립적 인 단일 정규 표현식으로 해결되어야합니다. 정규 표현식은 PCRE입니다. – Imbuter
이 숙제가 있습니까? – huon