在 Python 中有条件地拆分字符串

Conditionally Splitting a String in Python

我有一个看起来像这样的字符串:

Increase (decrease)      1,334      (     2,921)     2,797

我想将字符串拆分为如下所示:

['Increase (decrease)', '1,334', '(2,921)', '2,797']

我试过:

item=re.split(r'\s{3,}', strg)

但显然这会产生:

['Increase (decrease)', '1,334', '(', '2,921)', '2,797']

如有任何帮助,我们将不胜感激。

我会删除左括号后的所有空格,然后拆分:

>>> re.split(r'\s{3,}', re.sub(r"(?<=\()\s+", "", s))
['Increase (decrease)', '1,334', '(2,921)', '2,797']

请注意 (?<=\()positive lookbehind

可以替换括号之间的空格,然后拆分:

>>> re.split(r'\s{3,}',re.sub(r'(?<=\()\s+','',s))
['Increase (decrease)', '1,334', '(2,921)', '2,797']