Регулярное выражение Положительного и отрицательного вида

#python

Вопрос:

Мне нужна помощь с регулярным выражением. Действительно, я пытаюсь найти нужные слова:

«RESULTATS», «NOMS», «ECHANTILLONS»

Но если перед результатом есть «файлы», я не хочу, чтобы мое регулярное выражение совпадало. Я работаю с Python. Поэтому я выбрал регулярное выражение типа:

 REGEX_NOMS_COL = re.compile("^(?!(les))R.SULTAT.*|NOMS|ECHANTILLON.*|analyses", re.IGNORECASE)
 

различные точки моего регулярного выражения содержат pr, наполненные возможными акцентами.
Мое регулярное выражение частично работает … Это прекрасно работает на сайте regex101^^, но меньше в моем коде, где «результаты» принимаются во внимание, когда этого не должно быть…

Ответ №1:

Похоже, вы неправильно оцениваете негативный взгляд в будущее. Попробуйте поставить это после слов. Это согласуется с документацией:

(?!...)

Например, Isaac (?!Asimov) будет соответствовать 'Isaac ' , только если за этим не последует 'Asimov' .

 (?:RESULTATS|NOMS|ECHANTILLONS)(?!les)
 
  • Как и в документации, это будет соответствовать любому из 'RESULTATS' 'NOMS' , или 'ECHANTILLONS' только если за этим не следует 'les'

введите описание изображения здесь