Skip to main content
 首页 » 编程设计

python之用于在 Apache 访问日志中查找日期的正则表达式

2025年05月04日26insus

我正在编写一个 python 脚本来从我们的 2GB Apache 访问日志中提取数据。这是日志中的一行。

81.52.143.15 - - [01/Apr/2008:00:07:20 -0600] "GET /robots.txt HTTP/1.1" 200 29 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) VoilaBot BETA 1.2 (http://www.voila.com/)" 

我正在尝试从该行获取日期部分,但正则表达式使我失败,我不确定为什么。这是我的 Python 代码:

l = 81.52.143.15 - - [01/Apr/2008:00:07:20 -0600] "GET /robots.txt HTTP/1.1" 200 29 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) VoilaBot BETA 1.2 (http://www.voila.com/)" 
 
re.match(r"\d{2}/\w{3}/\d{4}", l) 

什么都不返回。以下也不行:

re.match(r"\d{2}/", l) 
re.match(r"\w{3}", l) 

或我能做的任何其他事情,甚至可以得到日期的部分。我误会了什么?

请您参考如下方法:

match() 在字符串的开头查找匹配项。使用 search() 在字符串中的任何位置查找匹配项。更多信息在这里:http://docs.python.org/library/re.html#matching-vs-searching