Python 正则表达式仅获取嵌套括号内的数据和空间

问题描述 投票:0回答:1

输入

; (Col1 Col2 (Col3 Col4 Col5) ) 

我需要在

Col3 Col4 Col4

之间留出空间

演示

"\(.+\(([^()]*)\)\)*"gm

; (113 (1 2 3) )

我已经成功获得了整个

(1 2 3)
。但是,如何获得中间的空间?

想法是获得输出:

; (113 (123) )
python regex
1个回答
0
投票

根据您需要删除值之间的空格的通用性,您可以使用后视和先行检查,仅在被字母数字字符包围时删除空格:

import re
string = "; (113 (1 2 3) )"
pattern = r"(?<=\w) (?=\w)"
result = re.sub(pattern, "", string)
assert result == "; (113 (123) )"

请注意,这也会在您的第一个输入中连接

Col1
Col2
,但您可以首先将最里面的括号与另一个正则表达式 (
r"\([^\(]+?\)"
)

匹配
© www.soinside.com 2019 - 2024. All rights reserved.