10

私はウェブアドレスを持っています:

http://www.example.com/org/companyA

正規表現を使用して CompanyA をビューに渡せるようにしたいと考えています。

これは私が持っているものです:

(r'^org/?P<company_name>\w+/$',"orgman.views.orgman")

そして似合わない。

理想的には、example.com/org/X のようなすべての URL が x をビューに渡します。

前もって感謝します!

4

3 に答える 3

20

グループ名を括弧で囲む必要があります。名前付きグループの構文は(?P<name>regex)、ではなく、?P<name>regexです。また、末尾のスラッシュを必要としない場合は、オプションにする必要があります。

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'}
于 2009-10-25T00:20:42.110 に答える
2

正規表現が無効です。おそらく次のように見えるはずです

r'^org/(?P<company_name>\w+)/$'
于 2009-10-25T00:20:15.730 に答える
1

それはもっと似ているはずですr'^org/(?P<company_name>\w+)'

>>> r = re.compile(r'^org/(?P<company_name>\w+)')
>>> r.match('org/companyA').groups()
('companyA',)
于 2009-10-25T00:19:17.887 に答える