0

这是一行日志文件:

41.42.50.xxx - - [09/Oct/2012:00:00:01 +0200] "GET http://www.xxxxxx.com/solutions-ar/solutions-1466.php HTTP/1.1" 200 10 "http://www.google.com.eg/url?dfasdfeaefdf" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4"

我想将 ip 地址、时间、url、google url 和浏览器解析为单行,我(r'^(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?))')用来匹配 ip 地址,如何获取其他信息并输出 html?谢谢

4

2 回答 2

3

使用apachelog之类的库来解析 Apache 日志行。这将比尝试为这些行编写正则表达式更健壮、更安全。

于 2012-10-09T06:02:50.773 回答
2
  • IP地址:r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
  • 时间:r'\d{2}/[a-zA-Z]{3}/\d{4}:\d{2}:\d{2}:\d{2} \+\d{4}'
  • Time ( alternate ): r'(?<=\[).+?(?=\])', 懒惰的,假设日期总是在里面[],只有日期会在里面[]
  • 网址:r'https?://.+?(?= HTTP)'
  • 谷歌网址:r'(?<=")https?://.*?google\..*?(?=")'
  • 浏览器:r'(?<=")Mozilla.+?(?=")'

然而,正如nneonneo 所指出的,使用像 apachelog 这样的工具会更加健壮和可靠。

于 2012-10-09T06:10:20.563 回答