こんにちは、preg_match in PHPを使用して、HTMLドキュメントから以下の「望ましいテキスト」を解析します。
<p class="review"> Desired text </p>
通常、私はそのようなことのためにsimple_html_domを使用しますが、この機会には使用できません(上記の要素はすべての必要なdivタグに表示されないため、このアプローチを使用して、表示されない正確な時間を追跡しなければなりませんそれに応じてsimple_html_domから配列を調整します)。
とにかく、これは私の問題を解決するでしょう。
本当にありがとう。
preg_match("'<p class=\"review\">(.*?)</p>'si", $source, $match);
if($match) echo "result=".$match[1];
複数の一致を返す場合は、preg_match_all()を使用する必要があります。次に、2番目の結果グループ($ match [1])をループして、タグ間のコンテンツのみを取得します。
$source = "<p class=\"review\"> Desired text1 </p>".
"<p class=\"review\"> Desired text2 </p>".
"<p class=\"review\"> Desired text3 </p>";
preg_match_all("'<p class=\"review\">(.*?)</p>'si", $source, $match);
foreach($match[1] as $val)
{
echo $val."<br>";
}
Outputs:
Desired text1
Desired text2
Desired text3
一致する文字列に複数の行があり、次の場合:
<p class="review"> Desired text1 </p>
<p class="review"> Desired text2 </p>
<p class="review"> Desired text3 </p>
そのパターンは1回一致し、一致は文字列内のすべてになります。
より良いパターンは次のとおりです。
"'<p class=\"review\">([^<]*)</p>'si"