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

演習問題3の解答例

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

問題1

using System;
using System.Text.RegularExpressions;


class Program
{
    public static void Main()
    {
        string str = "私の住所は郵便番号234-5678 固定電話は0123-456-7890、携帯電話は080-1234-5678";
        string pattern1 = @"\d{2,4}-\d{2,4}-\d{4}?";

        string pattern2 = @"\d{3}-\d{4}?";

        Regex reg1 = new Regex(pattern1);


        MatchCollection ret1 = reg1.Matches(str);
        foreach (Match match1 in ret1)
        {
            Console.WriteLine("電話番号:" + match1.Value);
        }

        string tmp = reg1.Replace(str, " ");

        Regex reg2 = new Regex(pattern2);


        MatchCollection ret2 = reg2.Matches(tmp);
        foreach (Match match in ret2)
        {
            Console.WriteLine("郵便番号:" + match.Value);
        }

    }
}

注意事項:電話番号と郵便番号が一部同時にヒットしてしまうので、先に電話番号を取得し(20行目)、電話番号をスペースで置き換えた後、郵便番号を抽出するようプログラムを書いています。

問題2

using System;
using System.Text.RegularExpressions;
class Program { 
    static void Main() 
    {
        string input = "お問い合わせはsupport@example.comまで."; 
        string pattern = @"([A-Za-z0-9._%+-]+)@([A-Za-z0-9.-])+(\.[A-Z|a-z]{2,})"; 
        string replacement = " <a href=mailto:$0\">$0</a>"; 

        Regex reg = new Regex(pattern);

        string result = reg.Replace(input, replacement);
        Console.WriteLine(result); 
    }
}

コメント