からコンテンツを解析したい
<td>content</td>
and
<td *?*>content</td>
and
<td *specific td class*>content</td>
正規表現、PHP、およびpregを一致させるにはどうすればよいですか?
からコンテンツを解析したい
<td>content</td>
and
<td *?*>content</td>
and
<td *specific td class*>content</td>
正規表現、PHP、およびpregを一致させるにはどうすればよいですか?
これはかなり良い要約だと思います。
つまり、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、ここに1つの方法があります
$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