Consider the following string:
string s = "The man is (old).";
If I use:
Regex.Replace(s,@"\b\(old\)\b", @"<b>$&</b>");
The output is :
The man is (old).
But I would change the whole of the (old) word like this:
The man is (old).
How can I do this?
\b
won't match because (
and )
are not word characters. Is there a reason why you put them there, because you could just leave them out:
string replaced = Regex.Replace(s,@"\(old\)", @"<b>$&</b>");
According to the specs:
\b
: The match must occur on a boundary between a \w (alphanumeric) and a \W (nonalphanumeric) character.
-space-
and )
are both nonalphanumeric. The same for (
and .
, so \b
won't match in both cases.
You might not even need a regex... try
string result = s.Replace("(old)", "<b>(old)</b>");
or
string result = s.Replace("(", "<b>(").Replace(")", ")</b>");