#python #regex #regex-lookarounds
#python #регулярное выражение #поиск регулярных выражений
Вопрос:
foo, bar, tag
Я хочу, чтобы мое регулярное выражение совпадало, если предложение не содержит все три слова вместе выше.
foo bar goal
Но если слова все вместе, они не должны совпадать.
foo bar tag
Я пробовал это регулярное выражение в Python, но не смог заставить его работать.
^(?!.*(foo)).*(?!.*(bar)).*(?!.*(tag)).*$
Есть идеи? Спасибо.
Комментарии:
1. Может быть проще сопоставить все слова вместе, а затем инвертировать результат теста.
if not re.search(...):
Ответ №1:
Вы можете вложить положительные точки обзора в отрицательные точки обзора следующим образом:
^(?!(?=.*foo)(?=.*bar)(?=.*tag)).*$
Вот тестовые примеры