Создайте строку, которая соответствует RegEx в Python
Возможный дубликат:
Реверсирование регулярного выражения в python
Я думаю, что у меня возникла проблема, которая звучит проще, чем это... Я не слишком уверен. Я хочу определить регулярное выражение, и я хочу построить ряд строк, соответствующих ему.
Есть ли какой-либо модуль, который я могу импортировать, который получил эту функцию? Предпочтительно не использовать метод грубой силы с использованием re.search
или re.match
. Должен быть более элегантный способ сделать это.
Ответы
Ответ 1
Я работал над небольшой вспомогательной библиотекой для генерации случайных строк с помощью Python
Он включает в себя метод xeger()
, который позволяет вам создать строку из регулярного выражения:
>>> import rstr
>>> rstr.xeger(r'[A-Z]\d[A-Z] \d[A-Z]\d')
u'M5R 2W4'
Сейчас он работает с большинством основных регулярных выражений.
Ответ 2
Модуль exrex делает это: https://github.com/asciimoo/exrex.
Ответ 3
Для некоторых регулярных выражений список возможных строк может быть бесконечным. Например:
a*
включает в себя
a
aa
aaa
и т.д.. Таким образом, невозможно создать все строки для заданного регулярного выражения.