[英]Why doesn't this regular expression work on python
我正在嘗試從二進制文件中提取一些字符串。 當我在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)嗎? 我仍然嘗試使用正則表達式(另一種替代方法),但沒有結果。
您需要^
的re.MULTILINE
標志才能像grep一樣處理文本。
順便說一句,使用\\d
更具可讀性:
for c in re.finditer(r'^(\d+(\.\d+)+)', f, re.MULTILINE):
print c.group(1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.