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

如何用正则表达式匹配<p></p>标签对之间单独存在的%字符

问题根因

你编写的正则存在两个核心缺陷:

  • 使用了贪婪匹配的*量词,(.|\n|\r)*会尽可能多的吞噬字符,直接从首个<p>匹配到最后一个</p>,出现跨多标签命中的问题
  • 未限制p标签内部的内容规则,只要区间内出现%就会命中,不管是否包含其他字符

修正方案

场景1:严格匹配p标签内仅存在单个%,无任何其他字符(包括空白、换行)

/<p>%<\/p>/g

仅命中<p>%</p>结构。

场景2:支持p标签与%之间存在空白字符(换行、空格、制表符等),适配换行场景

/<p>\s*%\s*<\/p>/g

可命中以下结构:

<p>%</p>
<p>
%
</p>
<p> % </p>

场景3:兼容带属性的p标签

如果需要匹配<p class="demo">%</p>这类带属性的p标签结构,调整为:

/<p[^>]*>\s*%\s*<\/p>/g

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:54:04