Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 除某些字符和最大数字序列外的任何字母数字字符_Java_Regex - Fatal编程技术网

Java 除某些字符和最大数字序列外的任何字母数字字符

Java 除某些字符和最大数字序列外的任何字母数字字符,java,regex,Java,Regex,寻找正则表达式,它将找到一个长度为12个字母数字字符的字段,但不能有大写或小写的“O”或“I”。也不能有特殊字符。一行中不能有9个或更多数字的序列。我知道我可以做^[a-hj-np-zA-hj-np-Z0-9]{12}$,但我不知道如何在一行中有9个或更多的数字时不匹配 12345678A903应该是有效的。 abcdefghj34y应该是有效的。 123456789a34应无效 abc987654321应该无效这个怎么样: ^(?!.*?\d{9,})[a-hj-np-zA-HJ-NP-Z0-

寻找正则表达式,它将找到一个长度为12个字母数字字符的字段,但不能有大写或小写的“O”或“I”。也不能有特殊字符。一行中不能有9个或更多数字的序列。我知道我可以做^[a-hj-np-zA-hj-np-Z0-9]{12}$,但我不知道如何在一行中有9个或更多的数字时不匹配

12345678A903应该是有效的。 abcdefghj34y应该是有效的。 123456789a34应无效 abc987654321应该无效

这个怎么样:

^(?!.*?\d{9,})[a-hj-np-zA-HJ-NP-Z0-9]{12}$
如所见

说明: ?!*\d{9,}在正则表达式中是一个负前瞻,它表示匹配后面不应该有零个或多个字符和9个或多个数字

您可以在此处了解有关负面外观的更多信息:

其中:

?i不区分大小写 ^行首 ?!.*\d{9}负向前看,确保没有9+个连续数字 [A-HJ-NP-Z0-9]{12}12字母数字,除了I和O,因为?I它也匹配小写字母 $行尾
你可以试试这种模式^*[oOiI]*\d{9,}[a-zA-Z0-9]{12}$

说明:

^-匹配字符串的开头

*[oOiI]-负前瞻:断言字符串中没有任何字符:oOiI

*\d{9,}-负前瞻:断言字符串中没有9个或更多连续数字

[a-zA-Z0-9]{12}-匹配12个字母数字字符

$-匹配字符串的结尾

加*[0-9]{9}之后^
(?i)^(?!.*\d{9})[A-HJ-NP-Z0-9]{12}$