我尝试在python中解析日志。我使用正则表达式操作。如果日志是标准格式,它可以正常工作。标准格式如下所示:
[158.197.233.55] : - : - :[03/Jan/2018:06:06:21 +0100] : "GET / HTTP/1.1" : 200 : 3041
问题是某些日志不是标准格式,因为它们写得不正确。我有这样的错误日志:
[158.197.238.112 : - : - [16/Jan/2018:17:32:02 +0100] : GET /phpmyadmin/themes/pmahomme/css/printview.css?v=4.6.6deb4 HTTP/1.1 : 200 : 988
或者
50.93.204.105 : - : - : [07/Jan/2018:15:53:34 +0100] GET /manager/html HTTP/1.1 404 290`
或者
[158.197
.233.55] : - : - [03/Jan/2018:06:16:31 +0100]
或许多其他类型的错误日志。
问题是我无法修复日志。我也不能编写正则表达式来解析所有类型的错误日志。我试试这个,但有太多不正确的类型。不知道怎么解决这个问题?我认为这将是最好的:如果regrex找到线女巫dont match group
只是跳错线。有可能在python中这样做吗?或者还有另一种方式吗?
答案 0 :(得分:1)
如果您想比较线条并跳过该线条不符合标准格式,您可以使用:
import re
for input_string in all_strings:
output = re.match('your_regex', input_string)
if output:
do_your_stuff()