这是一个示例输入:
(a1 b2 c3)
由 ' ', '(', ')' 分割,这是所需的输出:
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']
Pythonism 的做法是什么?
这是一个示例输入:
(a1 b2 c3)
由 ' ', '(', ')' 分割,这是所需的输出:
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']
Pythonism 的做法是什么?
使用 Python 的正则表达式模块:
>>> import re
>>> re.split(r'(\w+)', '(a1 b2 c3)')
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']
或者,与findall
orokusaki 的答案一样,但具有字符类(也算作_
单词字符):
>>> re.findall(r'\W+|\w+', '(a1 b2 c3)')
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']
或者,如果您想明确说明仅在(
, ,上进行拆分
)
:
>>> 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', ')']