正则表达式 django 网址
Posted
技术标签:
【中文标题】正则表达式 django 网址【英文标题】:Regex django url 【发布时间】:2014-01-20 05:39:50 【问题描述】:您好,我有一个 url,我想匹配 uuid 网址如下所示:
/mobile/mobile-thing/68f8ffbb-b715-46fb-90f8-b474d9c57134/
urlpatterns = patterns("mobile.views",
url(r'^$', 'something_cool', name='cool'),
url(r'^mobile-thing/(?P<uuid>[.*/])$', 'mobile_thing', name='mobile-thinger'),
)
但这根本不起作用。我的相应视图没有被调用。我测试了很多变化...啊
但url(r'^mobile-thing/', 'mobile_thing', name='mobile-thinger')
的作用就像一个魅力,但没有群体......
【问题讨论】:
【参考方案1】:[.*/]
表达式只匹配 一个 字符,可以是.
、*
或/
。您需要改写(这只是众多选项之一):
urlpatterns = patterns("mobile.views",
url(r'^$', 'something_cool', name='cool'),
url(r'^mobile-thing/(?P<uuid>[^/]+)/$', 'mobile_thing', name='mobile-thinger'),
)
这里,[^/]
代表除/
之外的任何字符,并且紧随其后的+
匹配此类字符一次或多次。您不希望最终的 /
出现在 uuid
变量中,因此请将其放在括号外。
【讨论】:
非常感谢...这不会调用我的视图函数...我也尝试了很多变体...这个网址包含在另一个网址中会不会是个问题? 如何包含在内?显示该代码。问题几乎肯定存在。【参考方案2】:试试这个正则表达式:
\/mobile-thing\/(?P<uuid>.*)\/$
应该是这样的:
urlpatterns = patterns("mobile.views",
url(r'^$', 'something_cool', name='cool'),
url(r'\/mobile-thing\/(?P<uuid>.*)\/$', 'mobile_thing', name='mobile-thinger'),
)
【讨论】:
谢谢..我没说正则表达式在包含的 url 中...这很重要吗? ".*" 是所有字符,当它不是结束字符时将包括“/”。所以 "/asdffadd/asdfdfsadf/" = "asdffadd/asdfdfsadf"以上是关于正则表达式 django 网址的主要内容,如果未能解决你的问题,请参考以下文章