如何利用正则表达式将字符串中的数字串匹配出来
temp = 'DwellTime: 666'
r = re.search(r'\d*',str(temp)).group()
想将666取出,可是总是得到:
r == ''
请问哪位热心人指点一下,谢谢大家
[解决办法]
注意空匹配也是匹配。*表示0或多匹配,一开头就有空匹配所以search马上完成,假使没找到的话search会返回None然后group()操作是会报错。你可以试试fianall()会从头找到尾,在找到666之前每个位置都是空匹配...应改用\d+表1或多
import re
temp = 'DwellTime: 666'
m = re.search(r'\d*', temp)
print repr(m.group()), m.start(), m.end()
m = re.search(r'\d+', temp)
print repr(m.group()), m.start(), m.end()
print re.findall(r'\d*', temp)
输出:
'' 0 0
'666' 11 14
['', '', '', '', '', '', '', '', '', '', '', '666', '']
[解决办法]
简单写个例子,根据情况可以自己调整
temp = 'DwellTime: 666.123're.search('\d+(\.\d*)?' , temp ).group()# result :'666.123'