正規表現を使って、文字列の中から、電話番号やメールアドレスを取得するスクリプト。
basetext に対象の文字列が入っているとします。
string basetext = "電話番号 00-0000-0000"; Regex reg = new Regex(@"(?0d{2,4}-d{2,4}-d{4}?)"); Match m = reg.Match(basetext); string tel = m.Groups["tel"].Value;
Regex reg = new Regex(@"(?0d{2,4}-d{2,4}-d{4}?)");
で、電話番号だけを取り出す正規表現を設定した、Regexオブジェクトを作成します。
Match m = reg.Match(basetext);
で、正規表現に一致する、Matchオブジェクトを取得します。
string tel = m.Groups["tel"].Value;
で、一致した文字列を取得します。
もし、複数の一地があった場合、
m.NextMatch();
で、次の一致した文字列できます。
複数一致しているかどうかは、MatchオブジェクトのSuccessプロパティの真偽で確認できるので、次のようにすると、複数一致した電話番号をすべて取り出すことができます。
Regex reg = new Regex(@"(?0d{1,4}-d{1,4}-d{4}?)"); string ret = ""; for (Match m = reg.Match(basetext); m.Success; m = m.NextMatch()) { ret += m.Groups["tel"].Value + "rn"; m.NextMatch(); } return ret;
その他、文字列からいろいろ取得する
string basetext = "郵便番号 000-0000"; Regex reg = new Regex(@"(?0d{3}-d{4}-d{4}?)"); Match m = reg.Match(basetext); string tel = m.Groups["postcode"].Value;
string basetext = "メールアドレス test@hogehoge.com"; Regex reg = new Regex(@"(?[wd_-]+@[wd_-]+.[wd._-]+?)"); Match m = reg.Match(basetext); string tel = m.Groups["mail"].Value;
string basetext = "URL https://accelboon.com/tn/"; Regex reg = new Regex(@"(?https?://[w/:%#$&?()~.=+-]+?)"); Match m = reg.Match(basetext); string tel = m.Groups["url"].Value;