输入
; (Col1 Col2 (Col3 Col4 Col5) )
我需要在
Col3 Col4 Col4
之间留出空间
"\(.+\(([^()]*)\)\)*"gm
; (113 (1 2 3) )
我已经成功获得了整个
(1 2 3)
。但是,如何获得中间的空间?
想法是获得输出:
; (113 (123) )
根据您需要删除值之间的空格的通用性,您可以使用后视和先行检查,仅在被字母数字字符包围时删除空格:
import re
string = "; (113 (1 2 3) )"
pattern = r"(?<=\w) (?=\w)"
result = re.sub(pattern, "", string)
assert result == "; (113 (123) )"
请注意,这也会在您的第一个输入中连接
Col1
和 Col2
,但您可以首先将最里面的括号与另一个正则表达式 (r"\([^\(]+?\)"
) 匹配