使用Regex从日志文件的最后一行获取IP地址

2024-05-23 19:19:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用pythonregex从日志的最后一行获取IP地址。在

我可以得到一个IP如果我搜索整个日志。例如:

with open("read.log", "r+") as log:
    for line in log:
        address = "^\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}$"
        match = re.match(address, line)

但是当我试图读取最后一行并获得一个IP地址时,我没有得到任何结果。我怎么解决这个问题?在

^{2}$

我的阅读.log看起来像这样。。。在

10.1.177.198 Tue Jun 19 09:25:16 CDT 2018
10.1.160.198 Tue Jun 19 09:25:38 CDT 2018
10.1.177.198 Tue Jun 19 09:25:36 CDT 2018
10.1.177.198 Tue Jun 19 09:26:38 CDT 2018
10.1.177.198 Tue Jun 19 09:27:16 CDT 2018
10.1.177.198 Tue Jun 19 09:28:38 CDT 2018

Tags: iniplogforreadaddressasmatch
1条回答
网友
1楼 · 发布于 2024-05-23 19:19:08

问题是你的正则表达式。^匹配行的开头,$匹配行尾。如果你的日志行/只有/有IP地址,你的代码就可以工作了。在

>>> import re
>>> m = re.compile("^\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}$")
>>> m.search('123.123.123.123')
<_sre.SRE_Match object; span=(0, 15), match='123.123.123.123'>

然而,事实并非如此。以下更改将修复您的搜索问题:

^{pr2}$

相关问题 更多 >