【问题标题】:Regular expressions and russian symbols in DjangoDjango中的正则表达式和俄语符号
【发布时间】:2020-10-25 18:47:02
【问题描述】:

我有一个这样的网址

url(ur'^gradebook/(?P<group>[\w\-А-Яа-я])$', some_view, name='some_view')

我希望它能够处理类似的请求

../gradebook/group='Ф-12б'

但我得到一个错误并且服务器崩溃了。

请帮我弄清楚俄罗斯的符号

【问题讨论】:

  • group='...' 与正则表达式不匹配。

标签: python django regex


【解决方案1】:

group='…' 部分更成问题,因为等式符号 = 不是字符组的一部分。

此外,您应该匹配多个个字符:

#                    quantifier  ↓
url(ur'^gradebook/(?P[\w\-А-Яа-я]+)$', some_view, name='some_view')

那么这可以匹配一个 URL:

/gradebook/<b>Ф-12б</b>

但如果您也想匹配 group='...',则应包含 =' 字符:

#             extra characters  &downarrow;&downarrow;
url(ur"^gradebook/(?P[\w\-А-Яа-я'=]+)$", some_view, name='some_view')

然后你可以匹配:

/gradebook/<b>group='Ф-12б'</b>

虽然这可能接受太多,因为它也可以接受例如f'q'a=gr=f

【讨论】:

  • 感谢您的回答,但遗憾的是我没有注意到缺少的 。现在我已经纠正了。而且你的版本对我也不起作用,似乎 django 对俄罗斯字符发誓
  • @jecloy:我已经在本地测试了正则表达式,它确实有效。但是您不能简单地将引号传递给 URL,它们是 百分比编码的
猜你喜欢
  • 2017-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-11
  • 1970-01-01
相关资源
最近更新 更多