这是我确定我遗漏了一些简单的事情之一,但是......在下面的示例程序中,我正在尝试使用Python的RE库来解析字符串"line"以获得浮点数在百分号之前的数字,即"90.31".但代码总是打印"不匹配".
我也试过了几个其他的正则表达式,都有相同的结果.我错过了什么?
#!/usr/bin/python
import re
line = ' 0 repaired, 90.31% done'
pct_re = re.compile(' (\d+\.\d+)% done$')
#pct_re = re.compile(', (.+)% done$')
#pct_re = re.compile(' (\d+.*)% done$')
match = pct_re.match(line)
if match: print 'got match, pct=' + match.group(1)
else: print 'no match'
Run Code Online (Sandbox Code Playgroud)
您应该使用re.findall:
>>> line = ' 0 repaired, 90.31% done'
>>>
>>> pattern = re.compile("\d+[.]\d+(?=%)")
>>> re.findall(pattern, line)
['90.31']
Run Code Online (Sandbox Code Playgroud)
re.match将在字符串的开头匹配.所以你需要为完整的字符串构建正则表达式.
| 归档时间: |
|
| 查看次数: |
12738 次 |
| 最近记录: |