边界字符在c#中不起作用

时间:2014-04-26 06:11:27

标签: c#

我在c#代码中遇到以下问题。

class Program
    {
        static void Main(string[] args)
        {
         string line="have a nice day with nice(songs)";
         string pattern=@"\bnice\b";
       string replaced_line=Regex.Replace(line, pattern, "Good", RegexOptions.IgnoreCase); 
}
}

输出 - :祝你好(歌曲)好日子

以上输出没问题。但下面的代码没有替换

class Program
    {
        static void Main(string[] args)
        {
         string line="have a nice day with nice(songs)";
         string to_replace="nice";
       string replaced_line=Regex.Replace(line, @"\b"+to_replace+"\b", "Good", RegexOptions.IgnoreCase); 
}
}

输出 - :与美好的(歌曲)度过美好的一天

它没有取代

任何人都可以帮助我。

2 个答案:

答案 0 :(得分:0)

此行错误

 string replaced_line=Regex.Replace(line, @"\b"+to_replace+"\b", "Good", RegexOptions.IgnoreCase);

你只逃脱了一次,但你必须在每个字符串中都这样做。所以应该是

 string replaced_line=Regex.Replace(line, @"\b"+to_replace+@"\b", "Good", RegexOptions.IgnoreCase);

(添加@)

希望它有效

答案 1 :(得分:0)

string to_replace= @"\bnice\b";是正确的,它不等于string to_replace= @"\b"+to_replace+@"\b"