如何用多个字符拆分字符串并保持拆分字符的返回值?

时间:2012-12-30 02:26:00

标签: python

这是一个示例输入:

(a1 b2 c3)

按'','(',')'拆分,这是所需的输出:

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

Python教学方法是什么?

2 个答案:

答案 0 :(得分:3)

使用Python的regular expression module

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

或者,如果您想明确仅关注()

>>> re.split(r'([^\(\) ]+)', '(a1 b2 c3)')
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']

答案 1 :(得分:0)

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