Для минимального m
и максимального n
вы используете {m,n}
. Если m
и n
совпадают, просто используйте {m}
.
Например, строка, состоящая только из трех-четырех альфа-символов, за которыми следуют две цифры, за которыми следуют от шести до двенадцати буквенно-цифровых символов, будет:
^[A-Za-z]{3,4}[0-9]{2}[A-Za-z0-9]{6,12}$
Если вы хотите неограниченные повторения на верхней стороне (без максимального числа), просто пропустите n
. Для неограниченных повторений на нижней стороне есть некоторые реализации, которые не поддерживают опускание m
, поэтому вы можете просто указать 0, чтобы это было безопасно). Другими словами,
[a-z]{6,}[0-9]{0,4}
означает шесть или более строчных букв, за которыми следуют от нуля до четырех цифр.
Ваши особые случаи - всего лишь версии этого, как в:
'[a-z]?' is identical to '[a-z]{0,1}'
'[a-z]*' '[a-z]{0,}'
'[a-z]+' '[a-z]{1,}'