....
....
... да - я думаю, что вы ищете ответ (и я подчеркиваю) думаю ") это выражение:
^[0-9A-Za-z]{3}[0-9A-Za-z-]\d{0,21}$
, вот:
^ # assert beginning (not in the middle)
[0-9A-Za-z]{3} # three characters that are: 0-9 or a-z (upper or lower)
[0-9A-Za-z-] # one character that is: 0-9 or a-z (upper or lower) or a dash
\d{0,21} # anywhere from 0 to 21 digits
$ # assert at the end (not somewhere in the middle
Если вы хотите сопоставить несколько случаев этого выражения, поместите вышеприведенное выражение (минус утверждения)в парантезы (()
) вместе со всем, что разрешено для разделения этих значений - я выбрал \s
или «пробел»), а затем использую квантификатор +
:
^([0-9A-Za-z]{3}[0-9A-Za-z-]\d{0,21}\s+)+$
будет сопоставлять / проверятьследующий ввод:
1234567890 AAAA123456789012345678901 GGG-123 hhh5 A1B2000000000
Если вы хотели что-то еще, вам придется задать более четкий вопрос (в вашем вопросе много противоречий и повторений, что делает его крайне запутанным)