Python 如何清理URL中的用户名

Python 如何清理URL中的用户名,python,regex,Python,Regex,什么是好的用户名正则表达式过滤器?好吧,还是太僵化了?我还应该找什么别的东西?修剪空白?这对于联合国来说很好,但您可能希望让它们使用-、、%、@和。。基本上,[a-zA-Z0-9.+-]。许多人会喜欢使用他们的电子邮件作为用户名,这覆盖了他们99%以上的人。在安全性较低的情况下,我说让他们来。这对联合国来说很好,但你可能希望让他们使用-、、%、@和。。基本上,[a-zA-Z0-9.+-]。许多人会喜欢使用他们的电子邮件作为用户名,这覆盖了他们99%以上的人。在安全性较低的情况下,我说让他们来。在

什么是好的用户名正则表达式过滤器?好吧,还是太僵化了?我还应该找什么别的东西?修剪空白?

这对于联合国来说很好,但您可能希望让它们使用-、、%、@和。。基本上,[a-zA-Z0-9.+-]。许多人会喜欢使用他们的电子邮件作为用户名,这覆盖了他们99%以上的人。在安全性较低的情况下,我说让他们来。

这对联合国来说很好,但你可能希望让他们使用-、、%、@和。。基本上,[a-zA-Z0-9.+-]。许多人会喜欢使用他们的电子邮件作为用户名,这覆盖了他们99%以上的人。在安全性较低的情况下,我说让他们来。

在URL中使用用户名。

在URL中使用用户名。

您对原始答案的评论才是真正的问题。在传输用户名时,使用base64或其他编码很简单,但是如果允许用户选择任意unicode用户名,他们可以很容易地模仿其他用户名


基本思想是,unicode有许多字符,这些字符看起来相同,但编码方式不同。请参见此处,以获取对的详细描述。不知道是否有任何库能够合理地处理这个问题,但是如果你想要一个简单的正则表达式解决方案,你真的应该坚持一些有限的字符范围

你对原始答案的评论才是真正的问题所在。在传输用户名时,使用base64或其他编码很简单,但是如果允许用户选择任意unicode用户名,他们可以很容易地模仿其他用户名


基本思想是,unicode有许多字符,这些字符看起来相同,但编码方式不同。请参见此处,以获取对的详细描述。不知道是否有任何库可以合理地处理这个问题,但是如果您想要一个简单的正则表达式解决方案,您真的应该坚持使用一些有限的字符范围

@我最初建议使用的机器,然后出于某种原因删除了它。我已经在@machine中添加了它,最初是我建议的,后来出于某种原因删除了它。我把它加了回去。它也会在屏幕上显示,所以我不想让伪装成另一个用户变得超级容易,比如说,结尾有一个空格,它也会在屏幕上显示,所以我不想让伪装成另一个用户变得超级容易,比如说,结尾有一个空格。。。允许任何事情。我喜欢Drupal允许用户名中任何字符的方式。我不喜欢Django不允许空间的方式,因为我想不出什么好的理由,尽管我承认我实际上没有看过。。。。允许任何事情。我喜欢Drupal允许用户名中任何字符的方式。我不喜欢Django不允许空间的方式,我想不出什么好的理由,尽管我承认我实际上没有看过。