匹配另一个 url - 正则表达式 django urls
Posted
技术标签:
【中文标题】匹配另一个 url - 正则表达式 django urls【英文标题】:match an alternative url - regular expression django urls 【发布时间】:2010-12-03 03:51:42 【问题描述】:我想要一个只有 2 个备选方案的 Django URL:/module/in/
或 /module/out/
我正在使用
url(r'^(?P<status>\w+[in|out])/$',
'by_status',
name='module_by-status'),
但它匹配其他模式,例如 /module/i/
、/module/n/
和 /module/ou/
。
任何提示表示赞赏:)
【问题讨论】:
【参考方案1】:试试r'^(?P<status>in|out)/$'
您需要删除匹配一个或多个字母数字字符或下划线的\w+
。 bstpierre 的回答中建议的正则表达式'^(?P<status>\w+(in|out))/$'
将匹配helloin
、good_byeout
等等。
请注意,如果您在 url 模式中使用竖线(竖线)字符 |
,则 Django cannot reverse the regular expression。如果您需要在模板中使用 url 标签,则需要编写两种 url 模式,一种用于in
,一种用于out
。
【讨论】:
@bluefish 谢谢,我已经更新了提到限制的答案【参考方案2】:你想要(in|out),你使用的[]表示一个包含字符'i','n','|','o','u','t'的字符类。
【讨论】:
你建议这样?:^(?P以上是关于匹配另一个 url - 正则表达式 django urls的主要内容,如果未能解决你的问题,请参考以下文章