为什么这个正则表达式不适用于python

时间:2013-02-26 02:28:39

标签: python regex

我试图从二进制文件中提取一些字符串。当我在linux中使用这个带有字符串的正则表达式时,它工作正常,但它在python中不起作用。

字符串

strings -n 3 mke2fs | grep -E '^([0-9][0-9]*(\.[0-9]+)+)'

结果: 1.41.11

python

import re

f = open("mke2fs","rb").read()
for c in re.finditer('^([0-9][0-9]*(\.[0-9]+)+)',f):
 print c.group(1)

结果为空。我该如何解决这个问题?是因为我的Python版本(我使用的是Python 2.7)?我尝试使用正则表达式(另一种替代方案)仍然没有结果。

1 个答案:

答案 0 :(得分:6)

您需要re.MULTILINE的{​​{1}}标记来处理您的文字,例如grep do。

顺便说一句,使用^

更具可读性
\d