Regex를 사용하여 HTML 태그의 콘텐츠를 구문 분석합니다
-
18-09-2019 - |
문제
콘텐츠를 구문 분석하고 싶습니다
<td>content</td>
and
<td *?*>content</td>
and
<td *specific td class*>content</td>
Regex, PHP 및 Preg Match로 어떻게 만들려면 어떻게해야합니까?
해결책
제 생각에는 이것 꽤 잘 요약합니다.
요컨대, 정기적 인 표현식을 사용하여 HTML을 구문 분석하지 마십시오. 대신, DOM 클래스, 특히를보십시오 domdocument :: loadhtml
다른 팁
HTML 문서가 있다면 정규식을 사용하여 구문 분석해서는 안됩니다. HTML은 "일반"이 아닙니다.
훨씬 더 나은 솔루션은 DOM 파서를 사용하여 HTML 문서를로드하는 것입니다. DOMDocument::loadHTML
그리고 xpath 쿼리 종종 정말 훌륭한 일을합니다!
<td>content</td>
: <td>([^<]*)</td>
<td *specific td class*>content</td>
: <td[^>]*class=\"specific_class\"[^>]*>([^<]*)<
@op, 여기에 한 가지 방법이 있습니다
$str = <<<A
<td>content</td>
<td *?*>content</td>
<td *specific td class*>content</td>
<td *?*> multiline
content </td>
A;
$s = explode("</td>",$str);
foreach ($s as $a=>$b){
$b=preg_replace("/.*<td.*>/","",$b);
print $b."\n";
}
산출
$ php test.php
content
content
content
multiline
content
제휴하지 않습니다 StackOverflow