In [115]: string = '2.5x2'
In [116]: re.split('(\d+.\d+)', string)
Out[116]: ['', '2.5', 'x2']
In [117]: re.split('(\d+)', string)
Out[117]: ['', '2', '.', '5', 'x', '2', '']
我需要找到能给我的正则表达式
['','2.5','x','2']
答案 0 :(得分:4)
将alf's
与可选的捕获组一起使用:
re.findall()
如果你想匹配upperase字母,请使用In [7]: re.findall(r'\d+(?:\.\d+)?|[a-z]', string)
Out[7]: ['2.5', 'x', '2']
标志来忽略大小写。
re.I
答案 1 :(得分:1)
您可以将split
与捕获组一起使用:
>>> s = '2.5x2'
>>> print re.split(r'(\d*\.?\d+)', s)
['', '2.5', 'x', '2', '']
如果要删除空元素,请使用:
>>> print filter(None, re.split(r'(\d*\.?\d+)', s))
['2.5', 'x', '2']