And*_*son 6 html php regex html-parsing
嘿所以我想做的就是抓住第一段的内容.该字符串$blog_post包含以下格式的许多段落:
<p>Paragraph 1</p><p>Paragraph 2</p><p>Paragraph 3</p>
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我正在写一个正则表达式来抓取第一个<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;
Run Code Online (Sandbox Code Playgroud)
Kib*_*bee 18
那么,假设段落中没有其他html,sysrqb将允许您匹配第一段中的任何内容.你可能想要更像这样的东西
<p>.*?</p>
Run Code Online (Sandbox Code Playgroud)
放置?后*使其变得非贪婪,这意味着在匹配之前它只会匹配必要的文本</p>.
如果您使用preg_match,请使用"U"标志使其不贪婪.
preg_match("/<p>(.*)<\/p>/U", $blog_post, &$matches);
Run Code Online (Sandbox Code Playgroud)
$matches[1] 然后将包含第一段.