匹配字母、数字和一些特定字符的正则表达式?

6 投票
3 回答
13179 浏览
提问于 2025-04-17 00:06

我正在尝试匹配一个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 其实不需要。

撰写回答