You need to enable JavaScript to run this app. 如何调整正则表达式匹配{word}内容且跳过[[ ]]包裹的对应项
优惠活动
大模型
产品
解决方案
定价
更多

如何调整正则表达式匹配{word}内容且跳过[[ ]]包裹的对应项

正则表达式调整方案

方案1:兼容PCRE引擎(推荐)

如果你使用的正则引擎支持PCRE特性(如PHP、Python regex库、Java 9+、Go等),可以使用更简洁的跳过规则:

\[\[.*?]](*SKIP)(*F)|{([^:]*?)}

匹配逻辑说明:

  • 首先用\[\[.*?]]匹配所有被[[ ]]包裹的全部内容,通过(*SKIP)(*F)标记这部分内容直接跳过,不参与后续捕获
  • 后半部分|{([^:]*?)}沿用你原有的匹配规则,仅捕获未被双方括号包裹的{word}格式内容
  • 针对你的测试用例{?:participants::lookup(.,{eeid},[[{catalog}]])},该正则仅会捕获到eeid,完全符合需求。

方案2:兼容低版本/通用正则引擎

如果你使用的引擎不支持(*SKIP)(*F)语法(如JavaScript原生正则、Python标准re库),可以用正负向断言实现:

(?<!\[\[[^\]]*){([^:]*?)}(?![^\[]*]])

匹配逻辑说明:

  • (?<!\[\[[^\]]*) 负向回顾断言:确保当前匹配的{前方,没有未被]]闭合的[[
  • 中间{([^:]*?)}是你原有的匹配规则
  • (?![^\[]*]]) 负向前瞻断言:确保当前匹配的}后方,没有和前方[[对应的未闭合]]
  • 该方案默认不支持[[ ]]嵌套,如有嵌套使用需求可以针对性调整规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 06:15:02