Попробуйте следующее регулярное выражение и посмотрите демо Regex101 :
^([_A-Za-z0-9-+]+\.?[_A-Za-z0-9-+]+@(aou.edu.sa|arabou.edu.sa))$
Проблема была в перехвате домена электронной почты - части после @
.Вы использовали []
скобки, которые определяют группу запрещенных / разрешенных символов (зависит от ^
).Если у вас есть немного возможностей, вы можете просто определить их в скобках ()
и разделить их символом |
(or
).
(aou.edu.sa|arabou.edu.sa)
В регулярном выражении я представилвыше, он распознает письмо только с одной точкой .
(насколько я понял из вашей попытки).Вы можете сделать простое изменение, чтобы разрешить большее количество точек.
Редактировать: Не забывайте в Java экранировать символ точки с двойной косой чертой \\
, конечно.