我正在尝试构建一个正则表达式,该正则表达式只允许包含至少10个包含至少3位数的字母数字字符的字符串。
例如:
X6JV2YUW8T => True
JN1H86LEKA => True
111JEJE134 => True
A111111111 => True
ABCDEFGHIJ => False
0123456789 => False
非常感谢提前
答案 0 :(得分:0)
您可以使用+-------+------------+----+-----+
|Col1 |Acceleration|Mass|Force|
+-------+------------+----+-----+
|weight2|14 |7 |98 |
|weight1|18 |9 |162 |
+-------+------------+----+-----+
。
^(?=(.*\d){3})(?=(.*[a-zA-Z]))[a-zA-Z0-9]{10,}$
^ $ The whole string
(?=(.*\d){3}) Should contain at least three digits
(?=(.*[a-zA-Z])) And contain at least one letter
[a-zA-Z0-9]{10,} And be at least 10 alphanumeric characters
注意:最后一个返回true,因为它与基于问题的预期语法匹配。
答案 1 :(得分:0)
如果您需要至少10个字母数字字符(字符和数字),并且至少3位数字,您可以使用2个正数lookaheads来检查3个数字和1个字母数字字符(使用不区分大小写的标记{{1在js模式中):
^(?=(?:[a-z0-9]*[a-z]))(?=(?:[a-z0-9]*[0-9]){3})[a-z0-9]{10,}$
那将匹配:
/i
字符串的开头^
积极前瞻
(?=
非捕获组(?:
匹配零个或多个字母数字字符,然后匹配1个字母数字字符[a-z0-9]*[a-z]
关闭没有捕获组)
关闭前瞻)
积极前瞻
(?=
匹配零个或多个字母数字字符,然后匹配3位数字(?:[a-z0-9]*[0-9]){3}
关闭lookahaed )
匹配至少10倍的字母数字字符[a-z0-9]{10,}
字符串结尾
$