Regex для анализа файла журнала синего пальто - PullRequest
0 голосов
/ 22 марта 2019

У меня есть этот файл журнала, который я сейчас пытаюсь проанализировать.

Jan 12 2019, 14:51:23, 117, 10.0.0.1, neil.armstrong, standard-users, -, TCP_Connect, "sports betting", -, 201, accept, GET, text, https, www.best-site.com, 443, /pages/home.php, ?user=narmstrong&team=wizards, -, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome Safari/537.36", 192.168.1.1, 1400, 1463, -, -, -
Jan 12 2019, 14:52:14, 86, 10.0.0.1, neil.armstrong, standard-users, -, TCP_Connect, "sports betting", -, 200, accept, POST, text, https, www.upload.best-site.com, 443, /, -, -, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537", 192.168.1.1, 230056, 600, -, -, -
Jan 12 2019, 14:52:54, 118, 10.0.0.1, neil.armstrong, standard-users, -, TCP_Connect, "sports betting", -, 200, accept, GET, text/javascript, http, google.fr, 80, /search, ?q=wizards, -, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537", 192.168.1.1, 1717, 17930, -, -, -

это регулярное выражение, которое я сейчас использую https://regex101.com/r/Asbpkx/3, оно хорошо разбирает файл журнала додостигает "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537", затем он разделяется на (KHTML, =like Gecko) Как я могу завершить регулярное выражение, чтобы этого не произошло?

Ответы [ 3 ]

0 голосов
/ 22 марта 2019

Не используйте регулярные выражения для CSV.Попробуйте эти настройки props.conf.

[mysourcetype]
INDEXED_EXTRACTIONS = CSV
FIELD_DELIMITED = ,
FIELD_QUOTE = "
FIELD_NAMES = Date, Time, Field3, IP_Addr, Field4, Field5, Field6
TIMESTAMP_FIELDS = Date, Time
0 голосов
/ 22 марта 2019

Я посмотрел на это поближе, и файл журнала не в формате CSV, поэтому регулярное выражение синтаксического анализа CSV не сработало в моем предыдущем ответе.(Я также попытался выполнить синтаксический анализ с помощью Excel и Python CSV, и оба делятся через запятую после 'KHTML'.

Использование отрицательного взгляда сзади делает пример, который вы дали, анализирует правильно.

(.+?)(?<!KHTML), 
0 голосов
/ 22 марта 2019

Похоже, вы пытаетесь проанализировать CSV с помощью регулярных выражений.

Используйте регулярное выражение, описанное в этом сообщении: https://stackoverflow.com/a/18147076/9397882

Регулярное выражение: (?:^|,)(?=[^"]|(")?)"?((?(1)[^"]*|[^,"]*))"?(?=,|$)

...