Имеется срочная необходимость разбить русский текст из файла на предложения. Простое деление (split) по ., ! или ? не подойдет. Нужно учитывать варианты сокращений типа т. о., др., т. д.; сокращения перед именем собственным (г. Москва), сокращения типа Иванов И. И. и другие. Сейчас код регулярного выражения выглядит так:
string[] splitSentences = Regex.Split(sTemp, @"(?<!\w\.\w.)(?<![A-Z][a-z]\.)(?<=\.|\?)(\s|[A-Z].*)");
Понятно, что этого не достаточно. Помогите, пожалуйста.
Я конечно не могу ручаться за 100% валидные предложения.
[А-ЯЁ][\S\s]+?(?:[\S][^А-ЯЁ\.]){1,}(?:\.+|[?!])(?!(\s*[а-яё)\-"«0-9\.]))
Но такой вариант подошел на частные случаи г. Москва или Иванов И.И.
Жду комментариев если какой-то участок вам мозолит глаза!
Вот здесь тестировал
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости