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

如何修改正则表达式,可将{{}}内括号包裹内容捕获为独立分组

正则修改方案

调整后正则表达式

(?<=\{\{)(\w+(?:\s+\w+)*)\|(\w+(?:\s+\w+)*)\|(\w+(?:\s+\w+)*)(?:\s+(\([^)]+\)))?\|(\w+(?:\s+\w+)*)(?=\}\})

修改说明

  • 原正则无法匹配String1的核心原因是:原有分组的匹配规则\w+(?:\s+\w+)*只支持字母、数字、下划线和空格,不能识别括号字符,且没有预留分组捕获括号包裹的内容
  • 本次修改在原有第三段捕获规则后,新增了可选的非捕获组(?:\s+(\([^)]+\)))?:
    • 外层(?:)?标记该段为可选匹配,匹配String2时该段不会触发,原有逻辑完全不受影响
    • \s+匹配第三段文本和括号内容之间的空格
    • 新增的捕获组(\([^)]+\))会完整匹配一对括号及括号内的所有非右括号内容,正好将(word4 word5)捕获为独立分组

捕获结果说明

  • 匹配String2时,分组1到分组3、分组5的捕获结果和原正则完全一致,新增的分组4返回空值
  • 匹配String1时,分组1捕获word1,分组2捕获word2,分组3捕获word3,分组4捕获(word4 word5),分组5捕获word6,符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:15:04