Вот шаблон, который я использую сейчас:
string pattern = @"^(\s+|\d+|\w+|[^\d\s\w])+$";
Regex regex = new Regex(pattern);
if (regex.IsMatch(inputString))
{
Match match = regex.Match(inputString);
foreach (Capture capture in match.Groups[1].Captures)
{
if (!string.IsNullOrWhiteSpace(capture.Value))
tmpList.Add(capture.Value);
}
}
return tmpList.ToArray<string>();
При этом я получаю массив строк, по элементу для каждого слова и по одному элементу для каждого знака препинания.
Чего я хотел бы добиться сейчас, так это сгруппировать символы пунктуации в очереди только в одном элементе, т.е. на данный момент, если есть три точки одна за другой, я получаю три элемента в своем массиве, каждый из которых содержит точку. В конечном счете, я хотел бы иметь один элемент с тремя точками (или любым другим знаком препинания, если на то пошло).