我想替换文本中的某些单词,但仅限于条件,例如,如果每个单词都被空格包围。
为此,我使用:
Regex rx = Regex(@"\s+" + word + @"\s+");
str = rx.Replace(str, word2);
最后,我也替换了空格(以及所有其他指定的环境)。怎么能绕过这个?
答案 0 :(得分:5)
您可以使用the \b
anchor来匹配\w
(字母数字)和\W
(非字母数字)字符之间的边界。:
Debug.Assert(Regex.Match(word, "^\w+$").Success);
string result = Regex.Replace(input, @"\b" + word + @"\b", word2);
答案 1 :(得分:1)
str = Regex.Replace(str ,@"(?<first>\s+)" + word + @"(?<last>\s+)","${first}" + word2 + "${last}");
答案 2 :(得分:0)