Нужна помощь в написании регулярных выражений для захвата журналов DNS - PullRequest
0 голосов
/ 12 декабря 2018

Ниже приведены примеры журналов DNS, в которых мне нужно написать регулярное выражение для захвата имени хоста " Renju123 ".Структура формата журнала немного отличается в обоих примерах.

Примеры журналов приведены ниже:

"2018-12-12 13:25:30", "Рэндзю, Иаков, М (Ренджутест)", "Рендзю, Иаков, М (rtest), Renju123, Сайт по умолчанию, Test / firewall "," 10.221.5.136 "," XXX.XXX.XXX.XXX "," Разрешено "," 16 (A) "," NOERROR "," 1XX.1X.1XX.1XX.Test.com. "," Компьютерная безопасность "

" 2018-12-12 13:09:55 "," rtest "," Renju123, Сайт по умолчанию, Renju Renju / Renju "," 10.250.33.85 "," XXX.XXX.XXX.XXX "," Разрешено "," 12 (PTR) "," NOERROR "," 1XX.1X.1XX.1XX.Test.com. "," Программное обеспечение / технологии "

Регулярное выражение, которое я использовал, захватывает только первое имя хоста журнала

(? P (? <=),). *? (? =,.? По умолчанию)) <a href="https://regex101.com/r/MRhKn5/2" rel="nofollow noreferrer"> ссылка здесь

Но я хотел бы иметь одно регулярное выражение для захвата HostNames (Renju123) из обоих примеров журналов

1 Ответ

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

Что вы можете сделать (в соответствии с комментариями) - сопоставить двойную кавычку или запятую 1+ раз, используя [",]+, а затем записать в группу, соответствующую 1+ символам слова.Затем следует ,Default, чтобы вы могли снова найти соответствие:

Ваш матч будет в группе HostName.

[",]+(?P<HostName>\w+),Default

Regex demo

Если ваше имя хоста начинается с символа слова, вы можете использовать обходные пути и границу слова \b

(?<=[,"])\b(?P<HostName>\w+)(?=,Default)

Regex demo

...