Regex не работает должным образом в файле linux log4J? - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть файл журнала, сгенерированный log4j, я хочу идентифицировать определенную строку с регулярным выражением, которое я протестировал в regex101.

Вот пример, он соответствует на регулярном выражении regex101:

regex = r"(Batch name): (.*?) (started)"
test_str = "Batch name: AS_ValueOnly started"

Но когда я перебираю строки в python, этот файл журнала не может совпадать с регулярным выражением.Я копаю дальше и обнаружил, что проблема связана с функцией re.match, она не совпадает, когда появляется строка,

import re
log = "test.log"
with open(log, 'rb') as f:
    for line in f.readlines():
        if re.match(r"Batch name", line):
            print "found by regex"
            break
        if "Batch name" in line:
            print 'found by in line'
            break

Вот результат выполнения:

$python gen_split_log.py

found by in line

Process finished with exit code 0

Любая идеяоб этом?

1 Ответ

0 голосов
/ 05 декабря 2018

Понял, я должен использовать

re.search

не

re.match
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...