Ваше регулярное выражение почти нет: вам нужно добавить [a-zA-Z]{3}
. Я предпочитаю [[:alpha:]]
POSIX class in Ruby, чтобы соответствовать буквам.
/[[:alpha:]]/
- Alphabetic character
POSIX bracket expressions are also similar to character classes. They provide a portable alternative to the above, with the added benefit that they encompass non-ASCII characters.
Итак, вот возможно регулярное выражение:
\A[[:alpha:]]{3,4}:[[:alpha:]]{3}\z
См demo
регулярное выражение матча:
\A
- начало строки (в RoR, вы должны используйте \A
вместо ^
, или вы получите ошибки)
[[:alpha:]]{3,4}
- 3 или 4 буквы
:
- буквальные :
[[:alpha:]]{3}
- 3 буквы
\z
- конец строки (в RoR, вы должны использовать \z
вместо $
, или вы получите сообщение об ошибке)
чтобы разрешить только AAA
или AAAA
, вам необходимо ввести дополнительный (?
квантор) нон-захвата группы ((?:...)
строительство):
\A[[:alpha:]]{3,4}(?::[[:alpha:]]{3})?\z
^^^ ^^
См another demo
Посмотрите это: _https: //regex101.com/r/uD7qO3/1_ –