【发布时间】:2011-11-01 04:59:54
【问题描述】:
我正在尝试匹配可以包含的 Django URL 位:
_, %, &, +, 0-9, a-z, A-Z, (空格)
我该怎么做才能被 Django 的 URL 匹配器以参数的形式拾取?
(r'^(?P<chararg>\w+)/IT_NEEDS_TO_BE_HERE/(?P<intarg>\d+)', 'dest')
【问题讨论】:
我正在尝试匹配可以包含的 Django URL 位:
_, %, &, +, 0-9, a-z, A-Z, (空格)
我该怎么做才能被 Django 的 URL 匹配器以参数的形式拾取?
(r'^(?P<chararg>\w+)/IT_NEEDS_TO_BE_HERE/(?P<intarg>\d+)', 'dest')
【问题讨论】:
我不太确定 % char,但正则表达式应该是 [_%&+0-9a-zA-Z ]+
【讨论】:
由于\w 表示[a-zA-Z0-9_],您可以使用:
[%&+ \w]+
【讨论】:
我玩了一下,得到了这个 - [\w\+%_& ]+。
所以(r'^(?P<chararg>\w+)/IT_NEEDS_TO_BE_HERE/(?P<intarg>\d+)', 'dest') 会变成
(r'^(?P<chararg>\w+)/(?P<arg>[\w\+%_& ]+)/(?P<intarg>\d+)', 'dest')
\w 匹配任何单词字符和数字。
\+数学+
编辑:\d 不是必需的。
【讨论】:
_ 在 Python 3 中是不必要的,因为 \w 将匹配“可以成为任何语言中单词一部分的大多数字符,以及数字和下划线”。或者说docs(编辑:更正格式)