0

我原来的替换代码是。

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

但问题是它替换了所有出现的单词而不是所需的单词,例如原始单词:- 你好,我的名字是 serak,我在以色列 replace() - 是整个单词 chages 到“是 serak 和 am in arereal "

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

4

3 回答 3

1

使用正则表达式。在这个例子中\b代表一个字边界。

var regExp = new System.Text.RegularExpressions.Regex(@"\bis\b");
rtTextArea.Rtf = regExp.Replace(rtTextArea.Rtf, "are");
于 2013-02-21T14:55:26.267 回答
0

之前的帖子显示

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

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

这对我有用。

于 2013-06-20T16:29:02.127 回答
0

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

例如wordToReplace = " " + wordToReplace + " ";

于 2013-06-20T16:34:30.613 回答