用户 ID 的正则表达式

use*_*664 4 java regex

我是正则表达式的新手。

我需要编写符合以下条件的正则表达式

  • 用户 ID 不能全是数字
  • 用户名不能有特殊字符
  • 最小长度为 8 个字符
  • 最大长度为 20 个字符
  • 可以全是字母
  • 可以是字母数字

我写了以下表达式,但它不起作用

^[a-zA-Z\\d*]{8,20}$
Run Code Online (Sandbox Code Playgroud)

zx8*_*x81 5

你可以使用这个:

(?i)^(?=.*[a-z])[a-z0-9]{8,20}$
Run Code Online (Sandbox Code Playgroud)

查看什么有效和什么失败的演示

  • (?i) 使其不区分大小写
  • ^ 断言我们在字符串的开头
  • 前瞻(?=.*[a-z])检查我们至少有一个字母
  • [a-z0-9]{8,20} 匹配 8 到 20 个字母或数字(字母也可以大写)
  • $ 断言我们已经到达字符串的末尾