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