Проверьте правильность имени, указав правильный регистр и не более одного пробела

Я искал в сети все выражения регулярных выражений, но я не нашел ничего, соответствующего моим потребностям.

регулярное выражение для разрешения пробелов между словами

Регулярное выражение, позволяющее вводить буквенно-цифровые символы, не более одного пробела и т. Д.

Regex, каждый не алфавитно-цифровой символ, кроме пробела или двоеточия

В не перечисленном выше я получил решение:

Мне нужно проверить, если Nam действителен, если
=> Первая буква каждого слова должна быть заглавными буквами
=> Остальные буквы каждого слова должны быть маленькими
=> Имя должно содержать только буквенные символы AZ и az
=> Длина первого слова должна быть не менее 3
=> Имя не должно содержать более одного пробела между словами

Пример:
Суджай => ложь
Суджай => правда

Суджай и => ложь
Суджай U => правда

Суджай U н => ложь
Суджай ООН => правда

SuJay U => ложь
Суджай ООН => ложь
Суджай Улс => правда

Sujay9 => ложь
Су => ложь
Су U => ложь
Суджай ООН => правда
Суджай Улс Нат => правда

|*| Проверьте используемую функцию:

static boolean chkNamVldFnc(String namVar)
{
    String namRegExpVar = "[A-Z][A-Za-z ]{2,}";

    Pattern pVar = Pattern.compile(namRegExpVar);
    Matcher mVar = pVar.matcher(namVar);
    return mVar.matches();
}

|*| Попробуйте 1:

String namRegExpVar = "[A-Z][A-Za-z ]{2,}";

|*| Попробуйте 2:

String namRegExpVar = "[A-Z][a-z]{2,}+//s[A-Z][a-z]{2,}";

|*| Попробуйте 3:

String NamRegExpVar = "[A-Z][a-z]{2,}||[A-Z][a-z]{2,}+//s[A-Z][a-z]";

Пожалуйста, помогите мне с надлежащим регулярным опытом:

Я также хочу знать, почему мы должны начинать Reg Exp с ^ и заканчивать $

1 ответ

Решение

Пытаться:

^[A-Z][a-z]{2,}(?: [A-Z][a-z]*)*$
  • Имя должно начинаться с буквы AZ, за которой следуют как минимум 2 буквы az
  • При желании могут быть имена после имени, разделенные пробелом и начинающиеся с буквы AZ, за которыми следуют дополнительные буквы az
Другие вопросы по тегам