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

如何用Regex匹配无闭合括号的括号及其内部内容?

匹配并清理未闭合的括号内容

我来帮你搞定这个正则匹配未闭合括号的问题!针对你给出的示例文本,我们需要精准定位那些没有对应右括号的左括号及其内部内容,同时避开已经完整闭合的括号对。

核心正则表达式

这里推荐使用这个正则来匹配末尾未闭合的括号内容:

\([^)]+$

正则拆解:

  • \(:转义匹配左括号(因为括号在正则里是特殊元字符,必须转义才能匹配字面量)
  • [^)]+:匹配任意数量不是右括号的字符(确保我们不会把闭合的括号内容包含进来)
  • $:锚定到字符串末尾,保证我们只匹配那些从左括号开始到文本结束都没有右括号的内容

实际使用示例

以你的示例文本为例,我们可以用代码快速完成清理:

import re

# 原始文本
original_text = "George Peppard (John 'Hannibal' Smith), Dirk Benedict (Templeton 'Faceman' Peck), Dwight Schultz ('Howling Mad' Murdock), Mr T (B"

# 执行替换,删除未闭合的括号内容
cleaned_text = re.sub(r'\([^)]+$', '', original_text)

# 输出结果
print(cleaned_text)

执行后得到的修正文本:

George Peppard (John 'Hannibal' Smith), Dirk Benedict (Templeton 'Faceman' Peck), Dwight Schultz ('Howling Mad' Murdock), Mr T 

扩展说明

如果你的场景中未闭合括号可能出现在文本中间(比如"A (B, C (D, E"),可以调整正则为:

\((?!.*\))[^)]+

这个版本通过负向前瞻(?!.*\))确保匹配的左括号之后整个文本范围内都没有右括号,能精准定位所有未闭合的括号内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:54:14