次の文字列について考えてみます。
string s = "The man is (old).";
私が使用する場合:
Regex.Replace(s,@"\b\(old\)\b", @"<b>$&</b>");
出力は次
のとおりです。男は(古い)です。
しかし、私は次のように(古い)単語全体を変更します:
男は(古い)です。
これどうやってするの?
\b
とは単語文字(
ではないため、一致しません。)
それらを除外することができるので、それらをそこに置く理由はありますか?
string replaced = Regex.Replace(s,@"\(old\)", @"<b>$&</b>");
仕様によると:
\b
:一致は、\ w(英数字)文字と\ W(英数字以外)文字の間の境界で発生する必要があります。
-space-
と)
は両方とも非英数字です。(
とは同じ.
なので\b
、どちらの場合も一致しません。
正規表現さえ必要ないかもしれません...試してみてください
string result = s.Replace("(old)", "<b>(old)</b>");
また
string result = s.Replace("(", "<b>(").Replace(")", ")</b>");