Регулярное выражение с несколькими обратными знаками sh соответствует python - PullRequest
0 голосов
/ 18 июня 2020

Мне нужно извлечь коды состояния http из файла журнала. Код хранилища файла журнала находится в следующем формате:

[Some log]{\""status\"": \""401\"",[Some further log]

Я написал ниже регулярное выражение, с помощью которого я могу искать коды в файле журнала через атом / блокнот ++:

\\\"\"status\\\"\"\:\ \\\"\"[4-9][0-9][0-9]\\\"\"

Однако он не работает в моем коде python. Код выглядит следующим образом:

*import csv, os, re
from re import search
pattern = re.compile(r'\\\"\"status\\\"\"\:\ \\\"\"[4-9][0-9][0-9]\\\"\"')
print(pattern)
#outfile = open("output.txt", 'a')
with open('query_data.csv') as logfile:
    csv_reader = csv.reader(logfile)
    filtered_log = []
    for row in csv_reader:
        source = row[21]
        result = pattern.search(source)
        print(result)
        if result != None:
            print(result)*

row [21] - это столбец сообщения, который содержит журнал. Любой ответ будет полезен.

1 Ответ

0 голосов
/ 18 июня 2020

На самом деле вам не нужно использовать regEx, почему бы не попробовать что-нибудь попроще, например:

string = '[Some log]{\""status\"": \""401\"",[Some further log]'

lines = string.split("\\")

print(lines)

# ['[Some log]{""status"": ""401"",[Some further log]']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...