嗨,所以我想做的是捕获第一段的内容。字符串$blog_post包含许多以下格式的段落:

<p>Paragraph 1</p><p>Paragraph 2</p><p>Paragraph 3</p>

我遇到的问题是我正在编写一个正则表达式来获取第一个<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;

最佳答案

好吧,假设该段中没有其他html,sysrqb可以让您匹配第一段中的任何内容。您可能想要更多这样的东西

<p>.*?</p>

?放在*之后会使它变得非贪婪,这意味着在匹配</p>之前,它仅会匹配尽可能少的文本。

10-08 08:02
查看更多