Я хочу написать регулярное выражение в режиме re.VERBOSE
, но я не уверен, что добавлю детальную часть без ошибок.Проверка соответствия двух шаблонов регулярных выражений Python
Я помню, что теоретически эквивалентность двух регулярных выражений (по крайней мере, без обратных ссылок) может быть найдена путем генерации их автоматов и попытки найти биекцию графа. Но нет метода экземпляра, который я могу увидеть для сравнения регулярных выражений.
Есть ли способ генерировать автомат регулярного выражения или напрямую сравнивать их, желательно со стандартной библиотекой?
(я уже решил на другое решение моей проблемы, но это по-прежнему представляет интерес для меня.)
Больше недокументированных, чем задокументированных. Кроме того, пытаясь написать функцию для проверки равенства регулярных выражений, я обнаружил, что из-за 're.compile' кэширования своих результатов' re.DEBUG' может не выдавать результат. И это не теоретическая эквивалентность регулярного выражения, поэтому это работает только для изменений 're.VERBOSE'. Вот моя реализация, с примерами: http://pastebin.com/DeCWLmF8 (Не стесняйтесь добавлять из этого комментария к вашему ответу.) – leewz
Я разочарован тем, что 're' не сохраняет вывод отладки, и что я не может принудительно перекомпилировать с 're.DEBUG'. – leewz
Поднял вопрос о 're.DEBUG', не заставляя перекомпилировать: http://bugs.python.org/issue20426 – leewz