我怎样才能用括号代替具体的词在C#中?(How can I replace specific wor

2019-10-16 23:30发布

请看下面的字符串:

string s = "The man is (old).";

如果我使用:

Regex.Replace(s,@"\b\(old\)\b", @"<b>$&</b>");

输出是:
该名男子是(旧)。
不过,我会改变整个像这样的(旧)字:
该名男子是(旧)。

我怎样才能做到这一点?

Answer 1:

\b不匹配,因为()没有字字符。 有没有你为什么把它们放在那里,因为你可以只留出来一个原因:

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

根据该规范 :

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

-space-)都是非字母数字。 这同样适用(. ,所以\b不匹配在这两种情况下。



Answer 2:

你甚至不需要一个正则表达式...尝试

string result = s.Replace("(old)", "<b>(old)</b>");

要么

string result = s.Replace("(", "<b>(").Replace(")", ")</b>");


文章来源: How can I replace specific word in c# with parenthesis?