Regex: анализ строки, содержащей последний, первый и средний инициал - PullRequest
0 голосов
/ 21 апреля 2020

У меня может быть любая строка в следующем формате:

Doe, John F -
Doe, John -

Я написал следующее, которое работает в этих двух случаях:

"^(.+),\\s(.+)\\s([A-Za-z])?\\s?-$"

"Doe, John F-" (no space after “Middle_Init”)
"Doe, John -"  (no middle initial)

Но это не работает с

"Doe, John F -" (space after the middle initial and the hyphen)

Я не уверен, как сделать пробел необязательным. Любые мысли приветствуются.

Ответы [ 2 ]

1 голос
/ 21 апреля 2020

Если вам нужно перехватить отдельные группы для всех 3 компонентов, это регулярное выражение должно работать: "^(.+),\\s+(\\w+)\\s+(\\w+)?\\s*-$" (отформатировано как Java String)

Regexp demo

0 голосов
/ 21 апреля 2020

Это должно работать в обоих случаях:

^(.+),\s(.+)\s?-$

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