正则表达式:常见字符串验证

1 投票
2 回答
1402 浏览
提问于 2025-04-17 07:33

我正在做一些基本的验证。程序的流程是这样的:

  • 用户输入一个字符串
  • 点击提交

现在我想确保满足以下规则:

  • 不能有空格
  • 必须是字母和数字的组合...不能有特殊字符!(比如 !@#$%^&*)
  • 必须以字母开头
  • 长度至少要有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$%^&#@")
>>> 

撰写回答