使用正则表达式模块split()
函数,分割于
-
'\d+'
-- 数字(数字字符)和
-
'\W+'
-- 非单词字符:
CODE:
import re
print([i for i in re.split(r'(\d+|\W+)', 'x+13.5*10x-4e1') if i])
OUTPUT:
['x', '+', '13', '.', '5', '*', '10', 'x', '-', '4', 'e', '1']
如果您不想分隔点(作为表达式中的浮点数),那么您应该使用:
-
[\d.]+
-- 数字或点字符(尽管这允许您编写:13.5.5
CODE:
print([i for i in re.split(r'([\d.]+|\W+)', 'x+13.5*10x-4e1') if i])
OUTPUT:
['x', '+', '13.5', '*', '10', 'x', '-', '4', 'e', '1']