将字符串拆分为数字而不是数字

时间:2017-01-12 18:25:53

标签: python regex string

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

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