regex для выявления ФИО
Как доработать данный regex, чтобы он правильно выделял выделял ФИО написанное в формате "Фамилия Имя Отчество" и "ФАМИЛИЯ ИМЯ ОТЧЕСТВО"
[А-ЯЁ][а-яё]+\s+[А-ЯЁ][а-яё]+\s+[А-ЯЁ][а-яё]+
Примеры ошибок моего regex
Перерасход Белокопытов Валерия Станиславовна ДО Алдан -> выделяет "Перерасход Белокопытов Валерия"
Залог Князев Серапеон Юрьевич -> выделяет "Залог Князев Серапеон"
Т.е. нужно чтобы регулярное выражение не читало первое слово в предложении, т.к. оно никогда не является Фамилией.
Примеры можно проверить на сайте https://regex101.com/
Ответы (1 шт):
Если гарантируется, что будет только одно слово перед ФИО, а сами ФИО будут полными, то достаточно немного дополнить ваше выражение вначале (?!^[\S]+\s)[А-ЯЁ][а-яё]+\s+[А-ЯЁ][а-яё]+\s+[А-ЯЁ][а-яё]+. Конструкция впереди исключает первое слово в искомой строке.
UPD: Для учета двойных фамилий подойдет (?!^[\S]+\s)([А-ЯЁ][а-яё]+[\-])?[А-ЯЁ][а-яё]+\s+[А-ЯЁ][а-яё]+\s+[А-ЯЁ][а-яё]+