2016-05-27 2 views
2

Если я скомпилировать регулярное выражение, таких как:Как я могу получить группы RegEx из Python re без соответствия?

pat = re.compile("/resource/([a-z]*)/") 

Можно ли получить соответствующие компоненты этой модели (например, "/ ресурс /", "([AZ] *)", "/") или какой-либо эквивалент без выполнения совпадение, поиск или какой-либо другой вызов регулярного выражения? Я хочу знать, как шаблон «вырывается».

Например, объекты групп Атрибут говорит мне, что есть 1 группа. Но не намного больше информации.

+0

Можете ли вы рассказать нам больше о том, что вы пытаетесь достичь? –

+0

Похоже, вы хотите сделать что-то похожее на это: https://docs.djangoproject.com/en/1.9/topics/http/urls/#reverse-resolution-of-urls. Если вы не используете Django, что вы используете? В вашей структуре может быть аналогичная функция. В противном случае, возможно, посмотрите на источник одной из фреймворков, которые это делают или пытаются найти библиотеку. –

+0

Предположим, что это был общий URL-адрес «/ r/([az] *) /», он будет соответствовать «/ r/foo /», «/ r/bar /» и т. Д. Внутренний компонент ничего не знает о URL-адресе, но он знает _fetch (ID1) _, _fetch (ID2) _. Я хотел бы создать функцию, которая может отображать общий URL-адрес для внутреннего представления. Например: 'shimfunc ("/r/([az] *)/", [(" foo ", ID1), (" bar ", ID2)])' ==> Шаблон URL: "/ r/", ,"/"==>, чтобы сгенерировать/вернуть {"/r/foo/": ID1,"/r/bar/": ID2}, который будет использоваться позже. – KlaxSmashing

ответ

2

Используйте regex101's отладчик особенность. Вы можете видеть, как ваше регулярное выражение не выполнялось или выполнялось шаг за шагом.

Пример:

enter image description here

+0

Wow я использовал этот инструмент навсегда и не знал, что это существует. Супер полезно! – mzhaase

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