1

次の文字列について考えてみます。

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

私が使用する場合:

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

出力は次
のとおりです。男は(古い)です。
しかし、私は次のように(古い)単語全体を変更します:
男は(古い)です。

これどうやってするの?

4

2 に答える 2

7

\bとは単語文字(ではないため、一致しません。)それらを除外することができるので、それらをそこに置く理由はありますか?

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

仕様によると:

\b:一致は、\ w(英数字)文字と\ W(英数字以外)文字の間の境界で発生する必要があります。

-space-)は両方とも非英数字です。(とは同じ.なので\b、どちらの場合も一致しません。

于 2012-07-11T18:32:40.840 に答える
1

正規表現さえ必要ないかもしれません...試してみてください

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

また

string result = s.Replace("(", "<b>(").Replace(")", ")</b>");
于 2012-07-11T18:55:05.333 に答える