使用分隔符拆分字符串
有些时候,我们可能需要将字符串拆分为字符串列表。
比如,按分隔符拆分如下字符串:
s = 'abc, def, gh;ijk, lmn'
简单的,可以使用字符串对象的 .split()
方法来实现。但是该方法智能使用单一分隔符,不支持多分隔符的情况。
>>> s = 'abc, def, gh;ijk, lmn'
>>> s.split(',')
['abc', ' def', ' gh;ijk', ' lmn']
>>>
可以看到,使用 .split()
方法拆分时,其它分隔符如空格、;
会被拆分到子字符串中,不能达到预期目的。此时可以选择使用 re.split()
方法:
# 1. 使用字符集 []
>>> re.split(r'[;,\s]\s*', s)
['abc', 'def', 'gh', 'ijk', 'lmn']
# 2. 使用非捕获组 (?:...)
>>> re.split(r'(?:;|,|\s)\s*', s)
['abc', 'def', 'gh', 'ijk', 'lmn']