当且仅当整个单词匹配时,如何替换richtextbox.rtf?

时间:2013-02-21 14:40:47

标签: c# .net

我原来的替换代码是。

rtTextArea.Rtf = rtTextArea.Rtf.Replace(oldtext, newtext);

但问题是它取代了所有单词的出现而不是所需的单词 例如原文: - 你好,我的名字是serak,我在以色列 replace() - 是整个单词chages to“serak and am in arereal”

无论如何,我可以包含一个条件或一些东西来匹配整个单词?  我的工作环境C#。

3 个答案:

答案 0 :(得分:1)

使用Regular expressions。在此示例中,\b表示单词边界。

var regExp = new System.Text.RegularExpressions.Regex(@"\bis\b");
rtTextArea.Rtf = regExp.Replace(rtTextArea.Rtf, "are");

答案 1 :(得分:0)

上一篇文章显示

var regExp = new System.Text.RegularExpressions.Regex(@“\ b”+ oldtext + @“\ b”); rtTextArea.Rtf = regExp.Replace(rtTextArea.Rtf,newtext);

这与第一篇文章略有不同。注意额外的b和@

这对我有用。

答案 2 :(得分:0)

使用RegEx这是正确的方法,但为了简洁起见,您还可以在要替换的单词前面添加/附加空格,以确保它不是另一个单词的一部分。

e.g。 wordToReplace = " " + wordToReplace + " ";