regex для выявления ФИО

Как доработать данный regex, чтобы он правильно выделял выделял ФИО написанное в формате "Фамилия Имя Отчество" и "ФАМИЛИЯ ИМЯ ОТЧЕСТВО"

[А-ЯЁ][а-яё]+\s+[А-ЯЁ][а-яё]+\s+[А-ЯЁ][а-яё]+

Примеры ошибок моего regex

Перерасход Белокопытов Валерия Станиславовна ДО Алдан -> выделяет "Перерасход Белокопытов Валерия"
Залог Князев Серапеон Юрьевич -> выделяет "Залог Князев Серапеон"

Т.е. нужно чтобы регулярное выражение не читало первое слово в предложении, т.к. оно никогда не является Фамилией.

Примеры можно проверить на сайте https://regex101.com/


Ответы (1 шт):

Автор решения: rusgeli

Если гарантируется, что будет только одно слово перед ФИО, а сами ФИО будут полными, то достаточно немного дополнить ваше выражение вначале (?!^[\S]+\s)[А-ЯЁ][а-яё]+\s+[А-ЯЁ][а-яё]+\s+[А-ЯЁ][а-яё]+. Конструкция впереди исключает первое слово в искомой строке.

UPD: Для учета двойных фамилий подойдет (?!^[\S]+\s)([А-ЯЁ][а-яё]+[\-])?[А-ЯЁ][а-яё]+\s+[А-ЯЁ][а-яё]+\s+[А-ЯЁ][а-яё]+

→ Ссылка