Регулярное выражение, чтобы соответствовать всем кроме некоторых определенных строк журналов - PullRequest
0 голосов
/ 04 сентября 2018

Предположим, у меня есть следующее исключение:

E 180822 133447.332 [pool-9982-thread-1] verylongfoo 
java.lang.NullPointerException

Мне нужно сопоставить только те исключения, которые содержат java.lang.NullPointerException, но в которых отсутствует часть verylongfoo. Это должно быть просто Perl 5-совместимое регулярное выражение, а не программа, написанная на Perl

Я пробовал что-то вроде

.*(?<!verylongfoo)[\s]java\.lang\.NullPointerException

и это

(?!verylongfoo).*\sjava\.lang\.NullPointerException

но ни один не работает.

Когда вид сзади соответствует нежелательной части, он просто начинает совпадать со второй буквы.

Вы можете мне помочь?

1 Ответ

0 голосов
/ 05 сентября 2018

Ваше регулярное выражение близко, его просто нужно привязать к началу строки, а затем отрицательному предвкушению требуется .*, чтобы verylongfoo мог находиться где-нибудь в строке:

^(?!.*verylongfoo).*\sjava\.lang\.NullPointerException

Демонстрация Regex101 с однострочными и многострочными строками: здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...