我正在尝试测试缓存,我需要从输出中提取信息。
我的代码如下:
import re
for line in open("test-fmath.simout_ruu_size_2"):
if "avg_alu_power " in line:
c = line
print c
c = re.sub("[^0123456789\.]","",c)
print c
如果我这样做,我的输出是:
avg_alu_power 18.9412 # avg power usage of alu
18.9412
哪个是对的。但是当我的输入中有数字和句号时,即:
il1.miss_rate 0.0612 # miss rate (i.e., misses/ref)
1.0.0612..
所以我认为我需要另一种方法来用正则表达式来解析它。
也许只是寻找#并解析数字或双数?我不知道该怎么做,不过......
答案 0 :(得分:1)
您必须更具体地选择您想要的部分:
>>> re.search(r'([\d.]+)\s+#', text).group(1)
'0.0612'
假设总有一个“#”字符
答案 1 :(得分:0)
这个正则表达式怎么样:
re.match('.* ([0-9\.]*).*',line).groups()