2015-07-02 5 views
0

У меня есть некоторые трудности с обучением regex в python. Я хочу проанализировать конфигурацию веб-маршрута tornado вместе с аргументами в строку пути запроса без метода request.path обработчиков. Например, у меня есть маршрут с узорами, как:Python генерировать строку на основе regex format

/entities/([0-9]+)

/product/([0-9]+/actions

Ожидаемый результат в сочетании с целочисленным параметром (123) будет строка, как:

/entities/123

/product/123/actions

Как создать строку на основе этого шаблона?

спасибо, что заблаговременно!

+0

Не могли бы вы изменить свой вопрос, чтобы включить еще несколько примеров ввода и ожидаемые результаты? Кроме того, пока вы на нем, объясните, почему вам нужно сгенерировать эти строки? –

+0

Создание строки из regexp не является доступным в библиотеке любого языка, с которым я знаком. Однако, если вы ищете, есть некоторые проекты, которые это делают. В принципе, вам нужно сгенерировать график перехода на основе регулярного выражения, а затем произвольно пройти его. Некоторые современные «регулярные выражения» на самом деле не являются регулярными выражениями, и для них будет сложнее создавать генераторы (например, любое утверждение с нулевой шириной усложняет ситуацию). – Amadan

+0

Спасибо за ваш ответ Амадан. У вас есть пример lib, который мог бы сэкономить мои проблемы, написанные на python? – daimagine

ответ

1

Это может быть возможно дубликат:
Reversing a regular expression in Python
Generate a String that matches a RegEx in Python


Используя ответ предоставленный @bjmc решение работает следующим образом:

>>> import rstr 
>>> intermediate = rstr.xeger(\d+) 
>>> path = '/product/' + intermediate + '/actions' 

В зависимости от того, как долго вы хотите получить промежуточное целое число, вы можете заменить регулярное выражение: \d{1,3}

+0

Спасибо за ваш пример кода, но я предполагаю, что он будет генерировать случайный, не так ли? – daimagine

Смежные вопросы