1

我的 urls.py 中有以下条目:

url(r'^\d{2}/$', 'test.view'),

我显然只想匹配 2 位数字,所以 12 很好,23 很好,但 123 不是,这很好用。

但是,当我尝试将阿拉伯数字与英文数字(如 2٢ 或 4٤)一起尝试时,它匹配,但我不希望这种行为!例如,数字 2٤ 会导致以下请求:

http://localhost/2%D9%A4

我绝对不想那样。如何使 Django URL CONF 只接受正常的 ascii 数字?

4

1 回答 1

3

\d匹配任何数字,包括阿拉伯数字。只需使用[0-9]

url(r'^[0-9]{2}/$', 'test.view'),

引用自文档

\d

当未指定 UNICODE 标志时,匹配任何十进制数字;这等效于集合 [0-9]。使用 UNICODE,它将匹配 Unicode 字符属性数据库中分类为十进制数字的任何内容。

٢٤,例如,是 Unicode 十进制数字:

>>> u'٤'.isdigit()
True
>>> u'٢'.isdigit()
True

希望有帮助。

于 2013-07-13T21:24:49.893 回答