在Django中使用Python正则表达式

在Django中使用Python正则表达式,python,regex,django,django-urls,Python,Regex,Django,Django Urls,我有一个网址: 我希望能够使用正则表达式将CompanyA传递给视图 这就是我所拥有的: (r'^org/?P<company_name>\w+/$',"orgman.views.orgman") (r'^org/?P\w+/$,“orgman.views.orgman”) 而且不匹配 理想情况下,所有类似example.com/org/X的URL都会将X传递给视图 提前谢谢 它应该更像r'^org/(?p\w+) >>r=re.compile(r'^org/(?P\w+))

我有一个网址:

我希望能够使用正则表达式将CompanyA传递给视图

这就是我所拥有的:

(r'^org/?P<company_name>\w+/$',"orgman.views.orgman")
(r'^org/?P\w+/$,“orgman.views.orgman”)
而且不匹配

理想情况下,所有类似example.com/org/X的URL都会将X传递给视图


提前谢谢

它应该更像
r'^org/(?p\w+)

>>r=re.compile(r'^org/(?P\w+))
>>>r.match('org/companyA').groups()
(‘公司’,)

您的正则表达式无效。它应该看起来像

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

您需要将组名括在括号中。命名组的语法是
(?Pregex)
,而不是
?Pregex
。此外,如果您不想要求尾部斜杠,则应将其设置为可选

使用Python解释器测试正则表达式匹配很容易,例如:

>>> 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'}
>>重新导入
>>>重新匹配(r“^org/?P\w+/$”,“org/companyA”)
>>>re.match(r'^org/(?P\w+/?$,'org/companyA'))
>>>re.match(r'^org/(?P\w+//$,'org/companyA').groupdict()
{'company_name':'companyA'}

这太棒了。我在网上找这样的东西!
>>> 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'}