1. ホーム
  2. c#

[解決済み】string.Replaceに代わる、大文字・小文字を区別しない方法はありますか?

2022-03-29 16:14:32

質問

ある文字列を検索し、その中にある %FirstName%%PolicyAmount% をデータベースから取り出した値で表示します。問題は、FirstNameの大文字と小文字が異なることです。そのため String.Replace() メソッドを使用します。この件に関するウェブページで、次のような提案を見たことがあります。

Regex.Replace(strInput, strToken, strReplaceWith, RegexOptions.IgnoreCase);

しかし、なぜか %PolicyAmount%$0 の場合、置換は行われません。ドル記号が正規表現で予約文字であることと関係があるのだと思います。

正規表現の特殊文字を扱うために入力をサニタイズしない、他の方法はないでしょうか?

どのように解決するのですか?

MSDNより

0 - "グループ番号番号(10進数)で一致する最後の部分文字列を置換します."。

.NETの正規表現では、グループ0は常に全体のマッチとなります。リテラル$の場合は、次のようになります。

string value = Regex.Replace("%PolicyAmount%", "%PolicyAmount%", @"$$0", RegexOptions.IgnoreCase);