我需要正则表达式包含字母数字,但至少2个字母连续和一个数字。范例:
123ab11 -> valid 11224 -> invalid A1111u4 -> invalid sb234d48 -> valid skir1938s -> valid 282883 -> invalid
字符串我试过(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{6,15})$,但它不工作。
(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{6,15})$
kq4fsx7k1#
我会把你的正则表达式写成:
^(?i)(?=.*\d)(?=.{6,15}$)[A-Z0-9]*[A-Z]{2}[A-Z0-9]*$
字符串此模式匹配:
^
(?i)
(?=.*\d)
(?=.{6,15}$)
[A-Z0-9]*
[A-Z]{2}
$
xytpbqjk2#
您可以Assert一个数字,并匹配2次字符A-Za-z使用re.IGNORECASE不区分大小写匹配
re.IGNORECASE
^(?=[A-Z]*[0-9])(?=[A-Z0-9]*?[A-Z]{2})[A-Z0-9]{6,15}$
字符串
说明
(?=[A-Z]*[0-9])
(?=[A-Z0-9]*?[A-Z]{2})
[A-Z0-9]{6,15}
Regex demo
2条答案
按热度按时间kq4fsx7k1#
我会把你的正则表达式写成:
字符串
此模式匹配:
^
从输入开始(?i)
不区分大小写模式(?=.*\d)
前瞻并确保至少存在一个数字(?=.{6,15}$)
长度为6到15个字符[A-Z0-9]*
匹配零个或多个字母数字字符[A-Z]{2}
匹配2个连续字母[A-Z0-9]*
匹配零个或多个字母数字字符$
输入结束xytpbqjk2#
您可以Assert一个数字,并匹配2次字符A-Za-z
使用
re.IGNORECASE
不区分大小写匹配字符串
说明
^
字符串开头(?=[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