簡體   English   中英

為什么這個正則表達式在python上不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM