我原来的替换代码是。
rtTextArea.Rtf = rtTextArea.Rtf.Replace(oldtext, newtext);
但问题是它替换了所有出现的单词而不是所需的单词,例如原始单词:- 你好,我的名字是 serak,我在以色列 replace() - 是整个单词 chages 到“是 serak 和 am in arereal "
无论如何我可以包含一个条件或匹配整个单词的东西吗?我的工作环境 C#。
使用正则表达式。在这个例子中\b
代表一个字边界。
var regExp = new System.Text.RegularExpressions.Regex(@"\bis\b");
rtTextArea.Rtf = regExp.Replace(rtTextArea.Rtf, "are");
之前的帖子显示
var regExp = new System.Text.RegularExpressions.Regex(@"\b"+oldtext+@"\b"); rtTextArea.Rtf = regExp.Replace(rtTextArea.Rtf, newtext);
这与第一篇文章有点不同。注意额外的 b 和 @
这对我有用。
为此使用 RegEx 是正确的方法,但为了简洁起见,您还可以在要替换的单词前面/附加一个空格,以确保它不是另一个单词的一部分。
例如wordToReplace = " " + wordToReplace + " ";