正则表达式:常见字符串验证
我正在做一些基本的验证。程序的流程是这样的:
- 用户输入一个字符串
- 点击提交
现在我想确保满足以下规则:
- 不能有空格
- 必须是字母和数字的组合...不能有特殊字符!(比如 !@#$%^&*)
- 必须以字母开头
- 长度至少要有3个字符
我该如何使用Python/Django的正则表达式来实现这些规则呢?
请帮帮我
2 个回答
6
你可以在Python中做到这一点,而不需要使用正则表达式:
if a.isalnum() and a[0].isalpha() and len(filter(str.isdigit, a)) >= 3:
...
如果根据@Toomai的说法,“3位数字”是指“至少3个字符长”,那么你需要这样做:
if a.isalnum() and a[0].isalpha() and len(a) >= 3:
...
3
试试这个
re.compile("^[A-Za-z]\w{2,}$")
>>> re.compile("^[A-Za-z]\w{2,}$")
<_sre.SRE_Pattern object at 0x0272C158>
>>> expr=re.compile("^[A-Za-z]\w{2,}$")
>>> expr.match("A12345")
<_sre.SRE_Match object at 0x02721288>
>>> expr.match("A1")
>>> expr.match("1AS")
>>> expr.match("AB1")
<_sre.SRE_Match object at 0x0272E138>
>>> expr.match("ab1")
<_sre.SRE_Match object at 0x02721288>
>>> expr.match("Abhijit$%^&#@")
>>>