正規表現を用いて文字列置換を行う方法
正規表現を用いて文字列置換を行う二位は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メソッドを用います。
おそらく、一番難しいのは正規表現の記述でしょう。正規表現はこちらの方で簡単に説明していますので、そちらを参照しながら試してみてください。
今回も演習問題を何問か用意していますので、ぜひ挑戦してみてください。
コメント