#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'