正则表达式匹配最后一段标签和内容

时间:2011-08-22 18:25:27

标签: php regex

我正在尝试编写一个正则表达式,它将删除字符串中的最后一个段落标记,以及它们之间的所有内容。我可以很好地匹配段落标签,但不是最后一个..

示例:

<p>This shouldnt get selected</p>
<p>This either</p>
<p>Bleh</p>

应该匹配什么

<p>Bleh</p>

我在这里找到了一些与最后一组方括号匹配的代码regex to match contents of last [bracketed text],但是无法修改它以使用段落标记。

2 个答案:

答案 0 :(得分:1)

使用lookahead的以下正则表达式将起作用:

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

答案 1 :(得分:0)

我知道这是一个老问题,但是也许其他人也有同样的问题

从最后一个<p>到结尾选择
/(<p>)(?!.*\1).+/is

或从最后一个<p></p>中选择
/(<p>)(?!.*\1).+<\/p>/is