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

如何编写正则仅删除包含指定关键词的括号及内部所有内容

正则匹配删除含指定关键词的小括号方案

核心正则表达式

使用如下正则即可实现需求:
/\([^()]*?(banana|apple)[^()]*?\)/gi

正则参数说明

  • 修饰符g:全局匹配所有符合规则的括号
  • 修饰符i:匹配时忽略大小写,满足不区分关键词大小写的要求

正则逻辑拆解

  • \(:转义匹配左小括号
  • [^()]*?:非贪婪匹配任意非括号字符,避免跨括号匹配的问题
  • (banana|apple):匹配目标关键词,新增关键词直接用|拼接即可
  • [^()]*?:继续非贪婪匹配括号内剩余的非括号字符
  • \):转义匹配右小括号

代码实现示例

JavaScript 实现

const rawStr = 'this is a string (bla BANANA ) another set of parentheses (bla bla)';
// 替换匹配到的括号内容为空
let processedStr = rawStr.replace(/\([^()]*?(banana|apple)[^()]*?\)/gi, '');
// 可选:规整多余的空格
processedStr = processedStr.replace(/\s+/g, ' ').trim();
console.log(processedStr); 
// 输出:this is a string another set of parentheses (bla bla)

Python 实现

import re

raw_str = "this is a string (blaAPPLE bla) another set of parentheses (bla bla)"
pattern = re.compile(r'\([^()]*?(banana|apple)[^()]*?\)', re.IGNORECASE)
processed_str = pattern.sub('', raw_str)
# 可选:规整多余空格
processed_str = re.sub(r'\s+', ' ', processed_str).strip()
print(processed_str)
# 输出:this is a string another set of parentheses (bla bla)

适配场景验证

该正则可覆盖你给出的所有测试场景:

  • 括号内含独立关键词的场景:如(bla bla banana bla bla)、(banana bla bla)可正常匹配删除
  • 关键词和其他字符连写的场景:如(bla blabanana)、(blaAPPLE bla)可正常匹配删除
  • 关键词大小写混合的场景:如(bla BANANA )、( apple bla)可正常匹配删除
  • 不含指定关键词的括号会完整保留,不会被误删

注:该方案适用于单层小括号的场景,如果存在括号嵌套的需求,需要使用支持递归匹配的正则逻辑实现。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:27:04