Python - 正则表达式 - 跳错线

时间:2018-04-01 16:11:45

标签: python regex

我尝试在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中这样做吗?或者还有另一种方式吗?

1 个答案:

答案 0 :(得分:1)

如果您想比较线条并跳过该线条不符合标准格式,您可以使用:

import re 

for input_string in all_strings:
    output = re.match('your_regex', input_string)
    if output:
        do_your_stuff()