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

正则表达式匹配时如何忽略括号内的字符串提取目标内容

正则实现忽略括号内容匹配方案

原有正则失效原因

之前尝试的正则^\s*([\w\s]+\s+example(?:\s\(\w+\s\d+\)|):)存在两点明显局限:

  • 括号内容的匹配规则写死为空格+左括号+单词+空格+数字+右括号的固定格式,只要括号内内容结构稍有变化(比如存在多个单词、特殊符号)就会匹配失败
  • 匹配逻辑没有将需要剔除的括号段和保留内容做清晰的捕获区分,无法直接输出移除括号后的结果

可用正则写法

基础适配版(适配示例场景,支持任意括号内内容)

^\s*(.*?example)\s*\([^)]*\)(:)

匹配后直接取两个捕获组的拼接结果$1$2即可,各部分逻辑说明:

  • ^\s*:匹配字符串开头的所有空白字符
  • (.*?example):非贪婪匹配从开头到关键词example的所有内容,存入第一个捕获组作为保留前缀
  • \s*\([^)]*\):匹配example后跟随的空白、以及完整的(任意非右括号字符)括号段,这部分为待剔除内容,不存入捕获组
  • (:):匹配字符串末尾的冒号,存入第二个捕获组作为保留后缀

兼容增强版(同时支持有无括号、多括号场景)

如果目标字符串可能不存在括号内容(比如直接是This is an example:),或是example后跟随多个括号段(比如This is an example (test 1) (v2):),可以使用适配性更强的写法:

^\s*(.*?example)(?:\s*\([^)]*\))*\s*(:)

该写法将括号段设置为可重复的可选匹配项,不会因为括号缺失、括号数量变化导致匹配失败。

效果验证

针对测试用例:

  • 输入字符串:This is an example (test 1):
  • 替换规则:将匹配结果替换为$1$2
  • 最终输出:This is an example:,完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 03:39:26