0

我需要一个正则表达式来确定 h1 标签后面是否跟着 h2 标签,中间没有任何段落元素。我尝试使用负前瞻,但它不起作用:

<h1(.+?)</h1>(\s|(?!<p))*<h2(.+?)</h2>
4

1 回答 1

1
<h1((?!</h1).)*</h1>((?!<p).)*<h2

应该管用。

它只匹配一个h1标签,然后匹配任意数量的字符直到下一个h2标签,但p前提是一路上没有找到标签。

由于在这种情况下不太可能出现嵌套标签,因此即使使用正则表达式,这也应该非常可靠。

您需要激活工具/语言的选项以使点匹配换行符。为您的正则表达式添加前缀可能足以(?s)实现此目的。

于 2010-05-26T15:30:55.403 回答