本コンテンツはプロモーションが含まれます。

Regexクラス(文字列置換)

スポンサーリンク
スポンサーリンク

正規表現を用いて文字列置換を行う方法

正規表現を用いて文字列置換を行う二位はRegexクラスのReplaceを用います。

using System;
using System.Text.RegularExpressions;

class Program
{
    public static void Main()
    {
        string str = "電話番号0123-456-7890をマスクします";
        string pattern = @"\d{2,4}-\d{2,4}-\d{4}";

        Regex rgx = new Regex(pattern);

        Console.WriteLine(rgx.Replace(str, "[隠しました]"));//0123-456-7890が[隠しました]に変換される

    }
}

正規表現を用いて文字列を分割する

正規表現を用いて文字列を分割するには、Splitメソッドを使います。

using System;
using System.Text.RegularExpressions;

class Program
{
    public static void Main()
    {
        string str = "電話番号0123-456-7890をマスクします";
        string pattern = @"\d{2,4}-\d{2,4}-\d{4}";

        Regex rgx = new Regex(pattern);

        string[] ret = rgx.Split(str);//電話番号の前後で分割し、文字列の配列に格納される

        foreach(string rets in ret){
            Console.WriteLine(rets);//電話番号(1行目)、をマスクします(2行目)と表示されます
        }

    }
}

 Regexクラスの文字列分割は文字列パターンが正規表現の時のみ使用し、固定文字列の場合はStringクラスのSplitメソッドを使った方がわかりやすいです。

正規表現のまとめ

 正規表現を用いた検索、文字列置換、文字列分割にはSystem.Text.RegularExpressions名前空間のRegexクラスを用います。

 1つ見つかれば良い場合はMatchメソッドを、全部見つけたい場合はMatchsメソッドを用いて検索します。

 また、文字列を別の文字列に置換する場合はReplaceメソッドを用います。

 文字列を分割したい場合は、Splitメソッドを用います。

 おそらく、一番難しいのは正規表現の記述でしょう。正規表現はこちらの方で簡単に説明していますので、そちらを参照しながら試してみてください。

 今回も演習問題を何問か用意していますので、ぜひ挑戦してみてください。

コメント