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

时间:2016-01-22 19:48:30

标签: python string-split

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

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']

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

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

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