我想使用RegEx和PHP提取文章的第一段。我开始写下如下的RegEx:
'/<p([^>]+)>(.*)<\/p>/i'
这是在做这项工作,但唯一的小问题是,虽然标记缩小了,如下所示:
<p>First Paragraph</p><p>SecondParagraph</p>
它只匹配所有<p>First Paragraph</p><p>SecondParagraph</p>
另外,我知道一个段落不能在另一个段落内,但是我无法控制用户写的内容,所以他可能会做这样的事情,RegEx会在这种情况下返回意外结果,如下所示:
<p>
First Paragraph
<p>SecondParagraph</p>
</p>
现在,RegEx与<p>First Paragraph<p>SecondParagraph</p>
匹配,但应提取<p>First Paragraph<p>SecondParagraph</p></p>
。
答案 0 :(得分:0)
我引用了答案https://stackoverflow.com/a/1732454/268074
建议您使用Simple HTML DOM:
http://simplehtmldom.sourceforge.net/
str_get_html($string)->find('p')->plaintext;