C# | Поиск по тексту

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

Пример текста:

Таким образом, повышение уровня гражданского сознания обеспечивает актуальность позиций, занимаемых участниками в отношении поставленных задач? Не следует, однако, забывать о том, что Михайлов Александр Дмитриевич и Мешков Дмитрий Тимофеевич а так же Афанасьева Малика Андреевна совместно с Максимов Михаил Алиевич повышают уровень гражданского сознания напрямую зависит от ключевых компонентов планируемого обновления?

К примеру в таком тексте найти ФИО..

Заранее спасибо!!!


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

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

Ой, только я тут на Python исходник даю, привык всё на нём делать. Но в C# регулярка будет точно такая же.

Вот вам простейший вариант по идее, которую я писал ранее в комментарии. Как-то вроде можно ещё сократить эту регулярку, но я не очень умею:

import re

text = 'Таким образом, повышение уровня гражданского сознания обеспечивает актуальность позиций, занимаемых участниками в отношении поставленных задач? Не следует, однако, забывать о том, что Михайлов Александр Дмитриевич и Мешков Дмитрий Тимофеевич а так же Афанасьева Малика Андреевна совместно с Максимов Михаил Алиевич повышают уровень гражданского сознания напрямую зависит от ключевых компонентов планируемого обновления?'
r = re.compile('([А-Я][а-я]+\s+[А-Я][а-я]+\s+[А-Я][а-я]+)')
print(r.findall(text))

Вывод:

['Михайлов Александр Дмитриевич',
 'Мешков Дмитрий Тимофеевич',
 'Афанасьева Малика Андреевна',
 'Максимов Михаил Алиевич']
→ Ссылка