Поймать слово, если оно не начинается с другого слова - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь проанализировать файл журнала и найти строки, связанные с ошибкой.Я вижу строку, подобную этой:

Worker Node UP/DOWN Notification received From ICM-GW

, где уведомление, а не ошибка, я хочу найти строки с информацией ВНИЗ , но исключить, если ВВЕРХ/ ВНИЗ присутствует.Я пробовал много выражений регулярных выражений, но не смог даже приблизиться.Любая помощь будет очень полезна.

([?!up\/]?(down))

1 Ответ

0 голосов
/ 26 февраля 2019

[?!up\/]? - это класс символов, который соответствует ? или !, u, p или /, 1 или 0 раз (из-за квантификатора ? после ], это делает этот шаблон необязательным.Подробности

  • (?i) - флаг без учета регистра
  • \b - граница слова (чтобы избежать совпадения down в touchdown)
  • (?<!\bup/) - нет целого слова up разрешено сразу слева от текущего местоположения
  • down - down последовательность символов
  • \b - граница слова,сразу справа не может быть слова char (буква, цифра или _ и некоторые другие, поскольку в Python 3 по умолчанию установлен флаг re.U, но они не имеют значения).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...