В первом шаблоне v2
соответствует, но если у вас фиксированный порядок [a-z]+[0-9]+
, тогда 2v
, например, не будет соответствовать.
Поскольку вы используете квантификатор {5,}
во втором шаблоне ииспользуйте [a-z]+[0-9]+
минимальная длина будет по крайней мере 10.
Если вы хотите match a string with alphabets AND numbers with length greater than n
, поэтому не должны совпадать только цифры, вы можете использовать:
\b(?=[a-z0-9]{5,})(?=[a-z0-9]*[a-z])[a-z0-9]*[0-9][a-z0-9]*\b
\b
Граница слова (?=[a-z0-9]{5,})
Утверждение 5 или более раз, символ или цифра 0-9 (?=[a-z0-9]*[a-z])
Утверждение, по крайней мере, 1 символ аз [a-z0-9]*
Совпадение 0+ раз az или 0-9 [0-9]
Совпадение цифры 0-9 [a-z0-9]*
Совпадение 0+ раз az или 0-9 \b
Граница слова
Regex demo
В Java
String regex = "\\b(?=[a-z0-9]{5,})(?=[a-z0-9]*[a-z])[a-z0-9]*[0-9][a-z0-9]*\\b";