匹配字母、数字和一些特定字符的正则表达式?
我正在尝试匹配一个Django的URL部分,这个部分可以包含:
_
(下划线)、%
(百分号)、&
(和号)、+
(加号)、0-9
(数字0到9)、a-z
(小写字母a到z)、A-Z
(大写字母A到Z)、(空格)
我该怎么做才能让Django的URL匹配器把它当作一个参数来识别呢?
(r'^(?P<chararg>\w+)/IT_NEEDS_TO_BE_HERE/(?P<intarg>\d+)', 'dest')
3 个回答
6
因为 \w
的意思是 [a-zA-Z0-9_]
,所以你可以使用:
[%&+ \w]+
10
我不太确定 % 符号的用法,不过正则表达式可以写成 [_%&+0-9a-zA-Z ]+
。
5
我玩了一下,得到了这个 - [\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
其实不需要。