Как можно сравнить I-й символ в строке с любым непробельным символом?

У меня есть текст из richTextBox, сохраненный в строке. Мне нужно узнать количество слов в нем. Конечно, можно воспользоваться Split() по пробелам примерно так:

 private void countWords() {
            if (richTextBox.Focused)
            {
                String buf = richTextBox.Text;
                int counter = 0;
                buf.Trim();
                counter = buf.Split(' ').Length;
                counterLabel.Text += ' ' + counter.ToString();
                }
            }

но хочу отловить случаи, когда в перед следующим словом 2 или больше пробелов. Как Составить такое условие?

если i-й символ в тексте пробел, а (i+1) и до следующего пробела — непробельные символы, то увеличить счетчик слов

Пробую так :

String buf = richTextBox.Text;
int counter = 0;

for (int i =0; i< buf.Length; ++i) {
     if (buf[i].Equals(' ') && buf[i + 1].Equals('\S')) {
         ++counter;
      }
}

и мне подчеркивает '\S', как нераспознанную escape-последотельность. Для '\S' обязательно нужно использовать регулярное выражение? Помогите его правильно составить, спасибо.


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

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

Этот функционал реализуют регулярные выражения.

MatchCollection matches = Regex.Matches(buf,@"\s+");
int wordCount = matches.Count+1
→ Ссылка