首页 > 解决方案 > 按 (a), (b), ..., (z) 分割

问题描述

我有一个字符串,我想用这些分隔符 (a)、(b)、...、(z) 分割

string="""(a) first string
(b) second (string)
(c) third string"""

string.split("()")

我想要的是:

[(a) first string, (b) second (string), (c) third string)]

标签: python

解决方案


我们可以re.findall在这里使用一种方法:

string = """(a) first string
(b) second (string)
(c) third string"""

items = re.findall(r'\([a-z]{1,3}\).*?(?=\s*\([a-z]{1,3}\)|$)', string, flags=re.DOTALL)
print(items)  # ['(a) first string', '(b) second (string)', '(c) third string']

请注意,这里我假设每个项目符号中最多包含三个小写字母。如果不是,那么可能很难与类似的东西区分开来(string),这似乎也是节标题。

https://docs.python.org/3/library/re.html#re.findall


推荐阅读