在 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']
我有一个看起来像这样的字符串:
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']