Баг python regex?
Обнаружил очень странный момент. Регулярное выражение из приведенного ниже примера не срабатывает в python3.9, но прекрасно находит на сайте https://regex101.com/r/w7Hi7C/1. Есть идеи, с чем может быть связано?
import re
def find(param, value):
return re.match(fr'(?:([0-9\.\-\+]+)\*)?(\-)?{param}(?:\*([0-9\.\-\+]+))?', re.sub(' ', '', str(value)))
find('a1', 'x < a1')
Ответы (1 шт):
Автор решения: GrAnd
→ Ссылка
Так ваш пример с regex101 и в вашем коде сработает. А строка из вашего кода найдётся, если вместо re.match использовать re.search. Потому, как re.match сопоставляет с начала строки, а подстрока a1 в вашем коде явно идёт не с начала.
О разнице между этими функциями недвусмысленно изложено в документации.