Regex для соответствия имени строки. (ЯВА) - PullRequest
0 голосов
/ 04 октября 2019

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

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

Допустимые имена:Сэмюэль, Сэмюэл Фостерс, Сэмюэл Джонсон Фостерс

Недопустимые имена: Самуил, Сэмюэл Фостерс, Сэмюэл Фостерс, Сэмюэл Фостерс

Это регулярное выражение, которое я написал до сих пор:

"[A-Z][a-z]|[A-Z][a-z]+(\\s[A-Z][a-z]+)+"

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

Как бы я отредактировал регулярное выражение, чтобы оно возвращало ложное значение для недопустимых имен при возврате истины длядействительные имена?

Ответы [ 2 ]

1 голос
/ 04 октября 2019

Регулярное выражение написано [A-Z][a-z].

Обобщение для ввода первых слов, разделенных одним пробелом, равно

"^[A-Z][a-z]+(?:\\s[A-Z][a-z]+)*$"

https://regex101.com/r/sa88TU/1

0 голосов
/ 04 октября 2019

Попробуйте Regex: (?<=^|, )\b[A-Z][a-z][a-z]+(?: [A-Z][a-z]+)*(?=,|$)

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...