문제

콘텐츠를 구문 분석하고 싶습니다

<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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top