2010年8月12日木曜日

[.NET]大文字小文字を区別しないで一括置換する

テストのドライバで、結果で指定されているURLプロトコルをHTTPSからHTTPに一括置換していました。
まぁローカルのIISでHTTPSを使えるようにするのが面倒だったのが理由なんですが。

で、とりあえず、string.Replaceで簡単に実装していました、時々httpsとなっているものがあり、置換されず通過してくるケースがありました。
で、置換する必要のある文字のパターンも増える可能性があり、大文字・小文字の区別なく一括置換できないものかと調べてみると、正規表現でいけることがわかりました。コードはこんな感じ。

private void button1_Click(object sender, EventArgs e)
{
    //using System.Text.RegularExpressions;
    var str = "abc/ABC/aBcC/aAaB/aABCc";
    System.Diagnostics.Debug.Write(Regex.Replace(str, "abc""123", RegexOptions.IgnoreCase));

    // 出力は↓こんな感じ
    // 123/123/123C/aAaB/a123c
}

いやー意外と簡単。

0 件のコメント: