2009-10-25 15 views

Répondre

19

Vous devez placer le nom du groupe entre parenthèses. La syntaxe des groupes nommés est (?P<name>regex), et non ?P<name>regex. En outre, si vous ne souhaitez pas exiger une barre oblique finale, vous devez la rendre facultative.

Il est facile de tester l'expression régulière correspondant à l'interpréteur Python, par exemple:

>>> import re 
>>> re.match(r'^org/?P<company_name>\w+/$', 'org/companyA') 
>>> re.match(r'^org/(?P<company_name>\w+)/?$', 'org/companyA') 
<_sre.SRE_Match object at 0x10049c378> 
>>> re.match(r'^org/(?P<company_name>\w+)/?$', 'org/companyA').groupdict() 
{'company_name': 'companyA'} 
+0

C'est génial. Je cherchais quelque chose comme ça en ligne! –

1

Il devrait ressembler davantage à r'^org/(?P<company_name>\w+)'

>>> r = re.compile(r'^org/(?P<company_name>\w+)') 
>>> r.match('org/companyA').groups() 
('companyA',) 
2

Votre regex n'est pas valide. Cela devrait probablement ressembler à

r'^org/(?P<company_name>\w+)/$'