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

如何用Python正则处理嵌套括号,移除内层括号内的空格?

移除嵌套括号内层的空格

输入示例

; (Col1 Col2 (Col3 Col4 Col5) ) 
; (113 (1 2 3) )

需求

将所有最内层括号中的空格全部移除,得到如下输出:

; (Col1 Col2 (Col3Col4Col5) ) 
; (113 (123) )

解决方案

不用单独先匹配内层括号再处理,直接通过正则替换配合回调逻辑一步完成,以下是几种常见实现方式:

Python 实现

import re

original_text = """; (Col1 Col2 (Col3 Col4 Col5) ) 
; (113 (1 2 3) )"""

def clean_inner_brackets(match):
    # 提取括号内内容并移除空格,重新拼接括号
    inner_content = match.group(1).replace(" ", "")
    return f"({inner_content})"

# 匹配所有不含嵌套的内层括号,执行替换
processed_text = re.sub(r"\(([^()]+)\)", clean_inner_brackets, original_text)
print(processed_text)

JavaScript 实现

const originalText = `; (Col1 Col2 (Col3 Col4 Col5) ) 
; (113 (1 2 3) )`;

const processedText = originalText.replace(/\(([^()]+)\)/g, (match, inner) => {
  return `(${inner.replace(/\s+/g, '')})`;
});

console.log(processedText);

文本编辑器(如VS Code)快速处理

如果无需写代码,可在VS Code中用正则替换完成:

  1. 打开查找替换面板(Ctrl+H),勾选「正则表达式」选项
  2. 查找框输入:\(([^()]+)\)
  3. 替换框输入:(${replace($1, /\s+/g, '')})
  4. 点击「替换全部」即可完成处理

原理说明

正则\(([^()]+)\)专门匹配不含嵌套括号的最内层括号:

  • \( 匹配左括号
  • ([^()]+) 捕获括号内所有内容(排除其他括号,确保只命中最内层)
  • \) 匹配右括号

通过回调函数移除捕获内容中的所有空格,再重新拼接成括号格式,即可实现需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 02:43:27