我想验证一个可变长度的字符串 - 一个VIN号。我想确保它只包含字母数字字符,长度在9到15位之间。但是,我还想确保字符串中没有任何地方是六个或更多字母数字字符的序列。我正在使用.NET的正则表达式引擎。
00THZY7564TTX --> should pass validation
X0000000TEVBV --> should fail validation
我看了很多帖子,但我似乎无法将其降低100%。目前,我有
(?<!(0){5,}.*)(?!.*(0){5,}.*)[A-Za-z0-9]{1,}
但似乎忽略了字符串中的零(在上面的示例#2中,它与0000TEVBV
部分匹配)。
我做错了什么?
提前致谢!!
答案 0 :(得分:1)
使用此正则表达式:
^(?!.*(\d)\1{5})[A-Z0-9]{9,15}$
查看 the regex demo 中的匹配项。
[A-Z0-9]{9,15}
A
)处于六个序列中,例如AAAAAA
^
锚点断言我们位于字符串的开头$
锚点断言我们位于字符串的末尾