如何用括号替换c#中的特定单词?

Hou*_*ami 1 c# regex string replace

请考虑以下字符串:

string s = "The man is (old).";
Run Code Online (Sandbox Code Playgroud)

如果我使用:

Regex.Replace(s,@"\b\(old\)\b", @"<b>$&</b>");
Run Code Online (Sandbox Code Playgroud)

输出是:
男人是(旧的).
但我会改变整个(旧的)这样的词:
男人是(旧的).

我怎样才能做到这一点?

Phi*_*ert 7

\b将不匹配,因为(并且)不是单词字符.你有没有理由把它们放在那里,因为你可以把它们留下来:

 string replaced = Regex.Replace(s,@"\(old\)", @"<b>$&</b>");
Run Code Online (Sandbox Code Playgroud)

根据规格:

\b :匹配必须发生在\ w(字母数字)和\ W(非字母数字)字符之间的边界上.

-space-并且)都是非字母数字.同为(.,所以\b将不匹配在这两种情况下.