首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

怎么利用正则表达式将字符串中的数字串匹配出来

2012-02-29 
如何利用正则表达式将字符串中的数字串匹配出来temp DwellTime: 666r re.search(r\d*,str(temp)).

如何利用正则表达式将字符串中的数字串匹配出来
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', '']


[解决办法]
简单写个例子,根据情况可以自己调整

Python code
temp = 'DwellTime: 666.123're.search('\d+(\.\d*)?' , temp ).group()# result :'666.123' 

热点排行