【发布时间】:2014-01-08 06:41:53
【问题描述】:
我正在一个教授 python(learnstreet.com) 的网站上做一个基于验证的项目。 该项目的一个要求是必须使用正则表达式来验证用户输入的各个字段。
项目的第一部分是用户名验证。网站为用户名定义的约束是:
Method 1 - Username Validation如果提供了用户名,则返回 True 是有效的,否则为 False。如果用户名至少为 5,则该用户名有效 字符长且没有空格或特殊字符(例如非字母数字) 字符。
我的解决方案不正确。该网站为我提供了以下用于用户名验证的正则表达式:
^[a-zA-Z0-9_]+$.
这个表达式中的+$是什么意思?
另外,考虑到用户名不能有任何非数字字符,而且这个表达式在集合中包含下划线,这难道不是不正确的吗?
【问题讨论】:
-
^和$是用于表示正则表达式开始和结束的锚。[]是一个字符类。+表示 1 个或多个字符。 -
为什么不
len(username) >= 5 and username.isalpha()? -
@devnull 谢谢你这么快!此外,在这种情况下,上述正则表达式与 ^\w+$ 有何不同。这是我在解决方案中提交的正则表达式,被标记为不正确。
-
@VineetKaushik 如果您想确保长度至少为
5,请在您的正则表达式中使用{5,}而不是+。 -
@devnull 虽然我确实使用条件来检查用户名的长度,但我会记住这一点。
标签: python regex validation