正規表現の勉強中なんですが躓いてます。メールアドレスが携帯電話(docomo/ボーダフォン/au/willcom)のものなのか、PCのものなのか判別する正規表現を教えて下さい。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/07/28 17:54:01
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:kasei_san No.2

回答回数22ベストアンサー獲得回数2

ポイント35pt

http://google.co.jp

URLはダミーです。


携帯電話 or PCで判別が出来ればOKですか?


携帯電話のドメインが以下の4種類ならば、

*@docomo.ne.jp

*@*.vodafone.ne.jp

*@ezweb.ne.jp

*@*.pdx.ne.jp

(*は任意の文字列)


この正規表現に引っかかるものが、携帯電話のアドレスです。

^[^@]+@(docomo|ezweb|[^\.]+\.pdx|[^\.]+\.vodafone).ne.jp$


PCだけ…となると、正規表現では文字列の否定が出来ないので、上の正規表現を否定文にするだけでは正しく動作しません。

そのため、例えば、携帯電話のメールアドレスを正規表現で検索して、全て空文字で置換してしまうなどの方法を自分はとっています。


他の方がもっとエレガントな回答を示していましたら、ポイントは結構です。

id:ikasamt

回答ありがとうございます。なるほど勉強になります。早速試してみたいと思います。

2006/07/28 17:51:03

その他の回答1件)

id:antipattern No.1

回答回数125ベストアンサー獲得回数12

ポイント35pt

環境にもよるかもしれませんが,Perl正規表現であれば

" /@(docomo|vodafone|ezweb)\.ne\.jp$/ "

という感じでヒットすると思います。

(Willcomのドメイン分かりません・・・すみません。)

http://www.kt.rim.or.jp/~kbk/regex/regex.html

id:ikasamt

回答ありがとうございます。

言語はrubyを想定してました。説明不足で申し訳ございません。

2006/07/28 17:50:32
id:kasei_san No.2

回答回数22ベストアンサー獲得回数2ここでベストアンサー

ポイント35pt

http://google.co.jp

URLはダミーです。


携帯電話 or PCで判別が出来ればOKですか?


携帯電話のドメインが以下の4種類ならば、

*@docomo.ne.jp

*@*.vodafone.ne.jp

*@ezweb.ne.jp

*@*.pdx.ne.jp

(*は任意の文字列)


この正規表現に引っかかるものが、携帯電話のアドレスです。

^[^@]+@(docomo|ezweb|[^\.]+\.pdx|[^\.]+\.vodafone).ne.jp$


PCだけ…となると、正規表現では文字列の否定が出来ないので、上の正規表現を否定文にするだけでは正しく動作しません。

そのため、例えば、携帯電話のメールアドレスを正規表現で検索して、全て空文字で置換してしまうなどの方法を自分はとっています。


他の方がもっとエレガントな回答を示していましたら、ポイントは結構です。

id:ikasamt

回答ありがとうございます。なるほど勉強になります。早速試してみたいと思います。

2006/07/28 17:51:03

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません