У меня есть файл журнала, сгенерированный 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
Любая идеяоб этом?