如何分割一个字符串的多个字符,并保持分割字符的返回值



这是一个示例输入:

(a1 b2 c3)

按' ','(',')'分割,这是期望的输出:

['(', 'a1', ' ', 'b2', ' ', 'c3', ')']

python是怎么做的?

使用Python正则表达式模块:

>>> import re
>>> re.split(r'(w+)', '(a1 b2 c3)')
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']

或者,与orokusaki的答案中的findall一样,但具有字符类(也将_视为单词字符):

>>> re.findall(r'W+|w+', '(a1 b2 c3)')
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']

或者,如果你想明确地只在(上分割,, CC_5:

>>> re.split(r'([^() ]+)', '(a1 b2 c3)')
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']
>>> import re
>>> re.findall(r'[a-zA-Z0-9]+|[^a-zA-Z0-9]', '(a1 a2 a3)')
['(', 'a1', ' ', 'a2', ' ', 'a3', ')']

最新更新