将分隔符添加到URL,以提取不同的值

时间:2015-12-28 17:51:49

标签: python regex django

我正在开发一个网站,我正在尝试做的是,每当用户输入他的电子邮件来重置密码,而不是使用Django中的内置tokens.py模块时,我已经实现了我自己的模块使用来自Django的加密签名,生成一个唯一的令牌,然后可以在URL中传递并呈现所需的视图。

我创建的网址映射是

url(r'^set_password/(?P<uid64>[0-9A-Za-z_\-]+)/(?P<token>[a-zA-Z0-9_.-]{2}-[a-zA-Z0-9_.-]{6}-[a-zA-Z0-9_.-]{27})/$','accounts.views.set_password_confirm',name='set_password_confirm')

我创建的正则表达式在用于分隔标记的分隔符为“ - ”时工作正常,但是当我尝试使用除“ - ”之外的分隔符时,正则表达式不起作用。

示例网址为:http://mywebsite.com/accounts/set_password/MTE/PQ-1aDbis-PNTp8XOiTASTWhcg1Er9URnCOYs/

我使用' - '分隔了令牌'PQ-1aDbis-PNTp8XOiTASTWhcg1Er9URnCOYs',我想要的是如果我使用除' - '之外的其他分隔符,则正则表达式应该有效。

有人可以建议解决方案吗?

1 个答案:

答案 0 :(得分:2)

您可以明确说明分隔符并在方括号内列出可能的分隔符:

(?P<token>[a-zA-Z0-9_.-]{2}[\-_][a-zA-Z0-9_.-]{6}[\-_][a-zA-Z0-9_.-]{27})

此处我们将分隔符设置为-_