Найти - Пользователи
Полная версия: Помогите составить регулярное выражение
Начало » Python для экспертов » Помогите составить регулярное выражение
1
Evg
import re
m = re.match("/(?P<p1>[^/]*)/(?P<p2>[^/]*)(/|page|$)(?P<page>(\d*))", "/aa/bb")
print m.group('p1')
print m.group('p2')
выводит
aa
bb

import re
m = re.match("/(?P<p1>[^/]*)/(?P<p2>[^/]*)(/|page|$)(?P<page>(\d*))", "/aa/page2")
print m.group('p1')
print m.group('p2')
выводит
aa
page2

а нужно чтобы ‘page2’ попадало в группу m.group('page'), те в регулярке в фрагменте p2 (…/(?P<p2>*) …) нужно как то записать чтобы в p2 попадало ‘все что угодно кроме / И НЕ равное page<число>’ возможно ли такое сделать и как?
Ed
"/(?P<p1>*)/((?P<page>page\d*)|(?P<p2>.*))"
Evg
Ed
Ed
"/(?P<p1>*)/((?P<page>page\d*)|(?P<p2>.*))"
все же интересует вариант именно без перестановки, те именно указать обработчику выражение в той форме в которой я написал - ‘все что угодно кроме / И НЕ равное page<число>’ те грубо говоря исключить именно фразу page<число> для заданного параметра, возможно такое или нет?
Ed
Тогда так: "/(?P<p1>*)/((?P<p2>(?!page\d*)*)|(?P<page>page\d*))"
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB