regex 包含字母数字但至少有两个连续字母和一个数字的正则表达式

3gtaxfhh  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(99)

我需要正则表达式包含字母数字,但至少2个字母连续和一个数字。范例:

123ab11 -> valid
11224 -> invalid
A1111u4 -> invalid
sb234d48 -> valid
skir1938s -> valid
282883 -> invalid

字符串
我试过(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{6,15})$,但它不工作。

kq4fsx7k

kq4fsx7k1#

我会把你的正则表达式写成:

^(?i)(?=.*\d)(?=.{6,15}$)[A-Z0-9]*[A-Z]{2}[A-Z0-9]*$

字符串
此模式匹配:

  • ^从输入开始
  • (?i)不区分大小写模式
  • (?=.*\d)前瞻并确保至少存在一个数字
  • (?=.{6,15}$)长度为6到15个字符
  • [A-Z0-9]*匹配零个或多个字母数字字符
  • [A-Z]{2}匹配2个连续字母
  • [A-Z0-9]*匹配零个或多个字母数字字符
  • $输入结束
xytpbqjk

xytpbqjk2#

您可以Assert一个数字,并匹配2次字符A-Za-z
使用re.IGNORECASE不区分大小写匹配

^(?=[A-Z]*[0-9])(?=[A-Z0-9]*?[A-Z]{2})[A-Z0-9]{6,15}$

字符串

说明

  • ^字符串开头
  • (?=[A-Z]*[0-9])正向预测,至少Assert一位数
  • (?=[A-Z0-9]*?[A-Z]{2})正向前瞻,置位2个连续字符A-Z
  • [A-Z0-9]{6,15}匹配6-15个字符A-Za-z
  • $字符串结束

Regex demo

相关问题