0

我有一些问题。一次多行,我想匹配一次不是多行而不是一行搜索吗?

当我运行代码时这些结果。如果可以使用其他变量,请在 ^ 和 $ 之间。

pattern = r'.INFO..+Content'
m = re.compile(pattern,re.S|re.X)

f = open(LOG_FILE)

data = f.read()
print m.search(data).group()
f.close()

现在输出 [INFO] 0408| 09:50:16.57| /lib/smtp/smtp.c:670| [1120794944] [<<< 收到 <<<]
(16465.2500) SMTP 命令:发件人:>^M

[INFO] 0408| 09:50:16.57| /lib/smtp/smtp.c:670| [1120794944] [>>>   SEND   >>>] 
(16465.2500)     SMTP COMMAND : 250 2.1.5 Ok^M

[INFO] 0408| 09:50:16.58| /lib/smtp/smtp.c:670| [1120794944] [<<< RECEIVED <<<] 
(16465.2500)     SMTP COMMAND : RCPT TO: >^M

[INFO] 0408| 09:50:16.58| /lib/smtp/smtp.c:670| [1120794944] [>>>   SEND   >>>] 
(16465.2500)     SMTP COMMAND : 250 2.1.0 Ok^M

Date: Mon, 08 Apr 2013 09:50:19 +0900^M
Sender: +821057033705/TYPE=PLMN^M
From: +821057033705/TYPE=PLMN^M
To: +821046903908/TYPE=PLMN^M
X-Mms-Message-ID: 1Tf48000001^M
X-Mms-Transaction-ID: 1Tf48000001^M
Content-Type: text/plain;charset="UTF-8"^M
Content
4

1 回答 1

1

文档(http://docs.python.org/2/library/re.html)状态;re.Mre.MULTILINE

当正则表达式多行时,可能不再需要循环遍历文件行:)

于 2013-04-08T07:54:50.750 回答