这是一个示例输入:
(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', ')']