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

如何删除文本中首个左括号到对应右括号的全部内容(含括号)

可行实现方案

方案1:Python脚本(逻辑清晰,易自定义)

用括号深度计数的方法实现,不需要复杂正则,完美适配嵌套、跨多行场景,直接替换文件路径即可运行。

def remove_first_parenthesis_block(file_path):
    # 读取文件全部内容
    with open(file_path, 'r', encoding='utf-8') as f:
        content = f.read()
    res = []
    depth = 0
    found_first_parenthesis = False
    for char in content:
        if depth == 0:
            # 还没遇到第一个左括号,直接保留字符
            if char == '(' and not found_first_parenthesis:
                depth += 1
                found_first_parenthesis = True
            else:
                res.append(char)
        else:
            # 已经进入括号范围,根据括号深度判断是否停止丢弃
            if char == '(':
                depth += 1
            elif char == ')':
                depth -= 1
    # 写回处理后的内容
    with open(file_path, 'w', encoding='utf-8') as f:
        f.write(''.join(res))

# 替换成你的目标文件路径即可调用
remove_first_parenthesis_block('textfile1.txt')

效果验证

  • 输入logging.info(text text text(text text) text text) → 输出 logging.info
  • 输入跨多行内容:
    测试(文本
    文本内容(文本内容)
    文本内容)结束
    
    → 输出 测试结束

方案2:Perl单行命令(适合批量快速处理)

直接执行以下命令即可原地修改文件,自动适配嵌套、跨多行的括号场景:

perl -0777 -i -pe 's/\((?:[^()]++|(?R))*\)//' 你的目标文件名

注:-0777参数表示一次性读取整个文件,适配跨多行场景,内置递归正则自动匹配对应闭合括号,无需手动处理嵌套逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:54:00