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

如何移除字符串中括号及其内部的所有字符

如何移除文本中括号及其内部的所有内容?

需求场景

输入文本内容:

"00:00:25,58 --> 00:00:27,91 (DRAMATIC MUSIC PLAYING)"

期望输出:

"00:00:25,58 --> 00:00:27,91 "

尝试过的无效代码

eng_sub = open(text).read()
eng_sub2 = re.sub("\(", "", eng_sub)
new_eng_sub = re.sub("\)", "", eng_sub2)

open(text, "w").write(new_eng_sub)

这段代码仅能移除括号本身,无法清除括号内的内容。


解决方案

使用正则表达式匹配括号及其中的所有内容,一次性替换为空字符串即可。核心正则模式为\(.*?\):

  • \(:匹配左括号(转义是因为括号在正则中属于特殊语法字符)
  • .*?:非贪婪匹配任意字符(避免遇到多个括号时,错误匹配跨括号的内容)
  • \):匹配右括号

优化后的代码(建议用with语句管理文件,避免资源泄漏):

import re

# 替换text为你的实际文件路径
with open(text, 'r', encoding='utf-8') as f:
    eng_sub = f.read()

# 执行替换操作
new_eng_sub = re.sub(r"\(.*?\)", "", eng_sub)

with open(text, 'w', encoding='utf-8') as f:
    f.write(new_eng_sub)

补充说明

如果你的文本存在嵌套括号(例如(abc(def))),上述非贪婪模式无法完全匹配,此时需要使用递归正则或更复杂的匹配规则,但针对字幕文件这类场景,\(.*?\)已经足够满足需求。


内容的提问来源于stack exchange,提问作者me-an-ape

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:25:19