Поиск по тексту и отметка найденных слов - C#
Формулировка задачи:
Нужно сделать поиск по тексту с отметкой всех найденных слов. Проблема в том, что отмечается первое слово, потом если в тексте есть еще одно совпадение, то отмечается не найденное совпадение а следующее слово.
Я не могу понять как написать, чтобы оно брало начальный индекс не со следующего слова, а со следующего совпадения.
if (textBox2.Text == "")
MessageBox.Show("Введите текст");
else{
string[] words = stroka.Split(new Char[] { ',', ' ', '\n' });
int index = stroka.IndexOf(textBox2.Text);
for(int i=0;i<words.Length;i++){
MessageBox.Show(words[i]);
if (words[i] == textBox2.Text)
{
{
MessageBox.Show("Индекс входа " + index.ToString());
richTextBox1.SelectionStart = index;
richTextBox1.SelectionLength = textBox2.TextLength;
richTextBox1.SelectionColor = Color.Green;
MessageBox.Show("Количество символов " + (richTextBox1.SelectionLength).ToString());
index = richTextBox1.SelectionLength+1;
}
}
}
}
return stroka;Решение задачи: «Поиск по тексту и отметка найденных слов»
textual
Листинг программы
var index = richTextBox1.Find(textBox1.Text);
while (index > -1)
{
richTextBox1.SelectionBackColor = Color.Yellow;
index = richTextBox1.Find(textBox1.Text, index + 1, RichTextBoxFinds.WholeWord);
}