#regex #splunk #rex
#регулярное выражение #splunk #rex
Вопрос:
У меня возникли некоторые проблемы с запросом rex, в котором однозначная дата выдает неверный результат, но двузначная дата дает правильный результат.
Это записи журнала, которые я запрашиваю:
Mar 7 14:24:29 10.52.176.215 Mar 7 12:24:29 963568 - Melbourne details-cable-issue - vdvfvfv
Mar 20 09:52:55 10.52.176.215 Mar 20 07:52:55 963569 - Brisbane cable-issue
И это запрос:
^(?:[^ n]* ){7}(?P<extension>[^ ] )[^-n]*-s (?P<location>w )
Для записи от 7 марта мой запрос дает мне расширение группы «7», в то время как моя запись от 20 марта дает мне расширение группы «963569», что правильно.
Может ли кто-нибудь пролить некоторый свет на мой запрос, подтверждающий однозначную и двузначную дату? #7 против 20
Спасибо всем 🙂
Ответ №1:
В первой строке есть несколько последовательных пробелов (они выглядят как пробелы для заполнения), и поскольку вы сопоставляете только один пробел внутри (?:[^ n]* )
, вы получаете несоответствия.
Я предлагаю сопоставить 1 или более пробелов в этой первой группе и скорректировать ограничивающий квантификатор:
^(?:[^ n]* ){5}(?P<extension>[^ ] )[^-n]*-s (?P<location>w )
^ ^
Смотрите демонстрацию регулярных выражений