You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Regex Lookahead匹配紧邻特定闭合标签的目标元素

解决正则匹配紧跟特定闭合标签的目标元素问题

你的问题出在非贪婪匹配结合正向预查时的引擎行为:</strong>后面如果没有紧跟</p>,正则引擎会自动扩展匹配范围,直到找到满足预查条件的位置,所以会把第一个<strong>到第二个</strong>的内容都匹配进去。

要精准匹配紧跟</p>的那个<strong>元素,可以用负向预查限制<strong>内部的内容,避免越过其他</strong>标签,正则表达式如下:

<strong>(?:(?!</strong>).)*</strong>(?=</p>)

正则说明:

  • <strong>:匹配起始标签(如果需要支持带属性的<strong>,可以改成<strong[^>]*>)
  • (?:(?!</strong>).)*:非捕获组,匹配任意字符,但前提是当前位置后面不是</strong>,确保不会匹配到其他</strong>标签
  • </strong>:匹配闭合标签
  • (?=</p>):正向预查,确保当前位置后面紧跟</p>

如果实际场景中<strong>标签可能包含属性(比如<strong class="foo">),调整后的正则为:

<strong[^>]*>(?:(?!</strong>).)*</strong>(?=</p>)

这个写法能确保只匹配最后那个紧跟</p>的完整<strong>元素,不管前面有多少同类元素。

内容的提问来源于stack exchange,提问作者cabrito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 14:35:57