这是一行日志文件:
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地址,时间,网址,google网址和浏览器解析为单行,
我使用(r'^(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?))')
来匹配IP地址,我如何获得其他信息并输出html?
谢谢
答案 0 :(得分:3)
使用像apachelog这样的库来解析Apache日志行。它比为行编写正则表达式更强大,更安全。
答案 1 :(得分:2)
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}'
r'(?<=\[).+?(?=\])'
,懒惰,假设日期始终在[]
内,且只有日期会在[]
内r'https?://.+?(?= HTTP)'
r'(?<=")https?://.*?google\..*?(?=")'
r'(?<=")Mozilla.+?(?=")'
然而,正如 nneonneo 指出的那样,使用像apachelog这样的工具将更加强大和可靠。