регулярное выражение для исключения строки, если не существует другая строка - PullRequest
1 голос
/ 15 апреля 2019

В настоящее время я работаю над выражением регулярного выражения fluentd, чтобы соответствовать всем записям журнала, если в сообщении не содержится строка "dbug".Тем не менее, если журнал содержит в записи как «dbug», так и «firing», тогда мне нужно регулярное выражение для сопоставления с этой строкой.

Две строки могут появляться в любом месте записи журнала, однако «dbug» всегда будетперед "выстрелом".

Можно ли создать одно выражение регулярного выражения, которое может это сделать?

Буду признателен за любую помощь в этом!

1 Ответ

1 голос
/ 15 апреля 2019

Мы можем попытаться использовать здесь предпросмотры, например,

^(?:(?!.*\bdbug\b)|(?=.*\bdbug\b.*\bfiring\b)).*$

Демо

Первый просмотр (?!.*\bdbug\b) соответствует любой строке, которая соответствуетвообще не содержит dbug, а второй символ (?=.*\bdbug\b.*\bfiring\b) соответствует любой строке, которая содержит dbug и firing в указанном порядке.

...