Это можно решить одной строкой. Вопрос задан двумя списками (temp1 и temp2), возвращающими их разницу в третьем списке (temp3).
temp3 = list(set(temp1).difference(set(temp2)))
Просто выполните следующее:
yourRichTextBox.Text = yourRichTextBox.Text.Replace("e","ea");
Если вы хотите сообщить количество совпадений (которые заменены), вы можете попробовать использовать Regex
следующим образом:
MessageBox.Show(Regex.Matches(yourRichTextBox.Text, "e").Count.ToString());
Конечно, использование вышеописанного метода имеет дорогостоящую стоимость в памяти, вы можете использовать некоторый цикл в сочетании с Regex
, чтобы достичь своего рода усовершенствованного механизма замены следующим образом:
public void ReplaceAll(RichTextBox myRtb, string word, string replacement){
int i = 0;
int n = 0;
int a = replacement.Length - word.Length;
foreach(Match m in Regex.Matches(myRtb.Text, word)){
myRtb.Select(m.Index + i, word.Length);
i += a;
myRtb.SelectedText = replacement;
n++;
}
MessageBox.Show("Replaced " + n + " matches!");
}
Regex
для сложных шаблонов, нам не нужен такой мощный инструмент с простыми шаблонами, как в этом случае. – King King 19 September 2013 в 22:33