C# | Поиск по тексту
В тексте необходимо найти все имена, подпадающие под определенную категорию. Сложность в том, что текст может иметь разную структуру. Есть какой-то умный текстовый поиск или какой-то алгоритм для поиска по тексту, может кто сталкивался подскажет???
Пример текста:
Таким образом, повышение уровня гражданского сознания обеспечивает актуальность позиций, занимаемых участниками в отношении поставленных задач? Не следует, однако, забывать о том, что Михайлов Александр Дмитриевич и Мешков Дмитрий Тимофеевич а так же Афанасьева Малика Андреевна совместно с Максимов Михаил Алиевич повышают уровень гражданского сознания напрямую зависит от ключевых компонентов планируемого обновления?
К примеру в таком тексте найти ФИО..
Заранее спасибо!!!
Ответы (1 шт):
Ой, только я тут на Python исходник даю, привык всё на нём делать. Но в C# регулярка будет точно такая же.
Вот вам простейший вариант по идее, которую я писал ранее в комментарии. Как-то вроде можно ещё сократить эту регулярку, но я не очень умею:
import re
text = 'Таким образом, повышение уровня гражданского сознания обеспечивает актуальность позиций, занимаемых участниками в отношении поставленных задач? Не следует, однако, забывать о том, что Михайлов Александр Дмитриевич и Мешков Дмитрий Тимофеевич а так же Афанасьева Малика Андреевна совместно с Максимов Михаил Алиевич повышают уровень гражданского сознания напрямую зависит от ключевых компонентов планируемого обновления?'
r = re.compile('([А-Я][а-я]+\s+[А-Я][а-я]+\s+[А-Я][а-я]+)')
print(r.findall(text))
Вывод:
['Михайлов Александр Дмитриевич',
'Мешков Дмитрий Тимофеевич',
'Афанасьева Малика Андреевна',
'Максимов Михаил Алиевич']