php - 如何找到最后一个段落元素?

标签 php regex

我有几个段落标签的列表。每个都没有任何属性,例如

<p>First paragraph</p>
<p>Second paragraph</p>
<p>Third paragraph</p>

我的目标是找到最后一个开口 <p>标签——不管我只有一个段落还是十个。我总是想要最后一段开始标记。

/<p>/

我得到了第一个段落标签。我以为$将搜索方向从左到右反转为从右到左。所以基本上

/<p>$/

应该返回上面示例中第三段的开头段落标记;但是正则表达式什么也找不到。

那么如何最好地定位最后一段呢?

最佳答案

$不会改变搜索方向,它只是在文本的末尾匹配,仅此而已。

如果你想找到最后一个<p> , 你必须使用负数 lookahead断言不再出现 <p> :

(?s)<p>(?!.*<p>)

关于php - 如何找到最后一个段落元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28015330/

相关文章:

regex - 使用 perl/awk 或其他匹配字符替换 ascii

python - 在 python 中,如何在不属于十进制数的每个句点后放置一个空格?

php - 将值存储到数组并计算数组总值

javascript - 如何在 PHP 中提交后禁用提交按钮?

php - 比较mysql中的日期,其中日,月和年分别存储

php - 从 SQL 数据库中删除特定数量的行

php - 使用 mysqli 配置文件

html - 文本字段中的多个 HTM5 正则表达式

javascript - if 语句在应用 match() 方法时找不到字符串

除 [ 和 ] 字符之外的空白分隔符的正则表达式