0

正規表現と PHP を使用して、記事の最初の段落を抽出したいと考えています。以下のように正規表現を書き始めました。

'/<p([^>]+)>(.*)<\/p>/i'

それは仕事をしていますが、唯一の小さなバグは、マークアップが縮小され、以下のように1行になっていることです:

<p>First Paragraph</p><p>SecondParagraph</p>

単純にすべてに一致します<p>First Paragraph</p><p>SecondParagraph</p>
また、段落が別の段落内にあることはできませんが、ユーザーが何を書くかを制御できないため、このようなことを行う可能性があり、この場合、正規表現は次のように予期しない結果を返します。

<p>
    First Paragraph
    <p>SecondParagraph</p>
</p>

これで RegEx が一致します<p>First Paragraph<p>SecondParagraph</p>が、 を抽出する必要があり<p>First Paragraph<p>SecondParagraph</p></p>ます。

4

1 に答える 1

0

答えを参照しますhttps://stackoverflow.com/a/1732454/268074

シンプルな HTML DOM を使用することをお勧めします。

http://simplehtmldom.sourceforge.net/

str_get_html($string)->find('p')->plaintext;
于 2013-01-13T08:36:18.957 に答える