どのようのものを掴んの内容のHTMLタグ?
-
09-06-2019 - |
質問
こんにちはでいきたいと思いはスナッグの内容を特定した。の文字列 $blog_post
を多く含む項は以下のフォーマット:
<p>Paragraph 1</p><p>Paragraph 2</p><p>Paragraph 3</p>
問題は私の走ることを皆様にお伝えしたくて書き込み、regexのものを掴んでも、 <p>
タグの終 </p>
タグです。しかし、つかみの <p>
タグの 昨 閉会 </p>
タグの結果く掴みます。
ここには現在の私のコード:
if (preg_match("/[\\s]*<p>[\\s]*(?<firstparagraph>[\\s\\S]+)[\\s]*<\\/p>[\\s\\S]*/",$blog_post,$blog_paragraph))
echo "<p>" . $blog_paragraph["firstparagraph"] . "</p>";
else
echo $blog_post;
解決
もsysrqbごとの戦いの最初の項と仮定していくことになるかもしれません。htmlの定した。いものをつけることができます。
<p>.*?</p>
を置いて ?
後 *
で非欲張りなだけマッチとしてテキストとして必要な前マッチングの </p>
.
他のヒント
ご利用の場合 preg_match
, を使用 "U" 旗と国連-欲張り
preg_match("/<p>(.*)<\/p>/U", $blog_post, &$matches);
$matches[1]
その最初の段落。
おもしろくするのもいいけどによる利用 strpos() の位置の最初の
<p>
初
</p>
その利用 substr() の抽出るものとする。
$paragraph_start = strpos($blog_post, '<p>');
$paragraph_end = strpos($blog_post, '</p>', $paragraph_start);
$paragraph = substr($blog_post, $paragraph_start + strlen('<p>'), $paragraph_end - $paragraph_start - strlen('<p>'));
編集: 実際には、正規表現では他人の回答することにより、高速...大きな複雑な正規表現の問いに戸惑っていただき---
正規表現を使用してhtmlを解析は最適なソリューションを提供.使用XPATHがこの特定の場合:
$string = <<<XML
<a>
<b>
<c>texto</c>
<c>cosas</c>
</b>
<d>
<c>código</c>
</d>
</a>
XML;
$xml = new SimpleXMLElement($string);
/* Busca <a><b><c> */
$resultado = $xml->xpath('//p[1]');
所属していません StackOverflow