問題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);
}
}
コメント