正则表达式:h1 后跟 h2,中间没有 p
我需要一个正则表达式来确定 h1 标签后面是否跟着 h2 标签,并且中间没有任何段落元素。我尝试使用负前瞻,但它不起作用:
<h1(.+?)</h1>(\s|(?!<p))*<h2(.+?)</h2>
I need a regular expression to find out whether or not a h1 tag is followed by a h2 tag, without any paragraph elements in between. I tried to use a negative lookahead but it doesn't work:
<h1(.+?)</h1>(\s|(?!<p))*<h2(.+?)</h2>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
应该有效。
它完全匹配一个
h1
标签,然后是任意数量的字符,直到下一个h2
标签,但前提是在整个路径中没有找到p
标签。方式。由于在这种情况下不太可能出现嵌套标签,因此即使使用正则表达式,这也应该非常可靠。
您需要激活工具/语言的选项,以使点匹配换行符。在正则表达式中添加
(?s)
前缀就足以实现此目的。should work.
It matches exactly one
h1
tag, then any amount of characters up to the nexth2
tag, but only if nop
tag is found along the way.Since in this scenario it is rather unlikely that nested tags would occur, this should be quite reliable, even with regex.
You'll need to activate your tool's/language's option for the dot to match newline characters. It might be enough to prefix your regex with
(?s)
to achieve this.