Вы можете разделить регулярное выражение, соответствующее пустому пространству, с помощью вида сзади, который ищет терминаторы предложений:
string[] sentences = Regex.Split(input, @"(?<=[\.!\?])\s+");
Это разделит символы пробела и сохранит терминаторы в предложениях.
Пример:
string input = "First sentence. Second sentence! Third sentence? Yes.";
string[] sentences = Regex.Split(input, @"(?<=[\.!\?])\s+");
foreach (string sentence in sentences) {
Console.WriteLine(sentence);
}
Вывод:
First sentence.
Second sentence!
Third sentence?
Yes.