正则表达式替换指定的文本

Bog*_*dan 4 .net c# regex replace

我想替换文本中的一些单词,但仅限于条件,例如,如果每个单词都被空格包围.

为此,我使用:

Regex rx = Regex(@"\s+" + word + @"\s+");
str = rx.Replace(str, word2);
Run Code Online (Sandbox Code Playgroud)

最后,我也替换了空格(以及所有其他指定的环境).怎么能绕过这个?

dtb*_*dtb 5

您可以使用\b的之间的边界匹配\w和(字母)\W(非字母数字)字符:

Debug.Assert(Regex.Match(word, "^\w+$").Success);

string result = Regex.Replace(input, @"\b" + word + @"\b", word2);
Run Code Online (Sandbox Code Playgroud)