• ベストアンサー

メールアドレスかどうかの

TNYの回答

  • TNY
  • ベストアンサー率42% (69/163)
回答No.1

「Perlメモ」のページに正確な正規表現が載っています。 奥が深いです…

参考URL:
http://www.din.or.jp/~ohzaki/perl.htm#Mail
guuman
質問者

補足

ありがとうございます すごいことになっていますね 一応以下のようにしたのですがこれで正しいでしょうか? $mail=~ /(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\ \[\]\000-\037\x80-\xff])|"[^\\\x80-\xff\n\015"]*(?:\\[^\x80-\xff][ ^\\\x80-\xff\n\015"]*)*")(?:\.(?:[^(\040)<>@,;:".\\\[\]\000-\037\x 80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|"[^\\\x80-\ xff\n\015"]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015"]*)*"))*@(?:[^(\0 40)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000 -\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])*\]) (?:\.(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,; :".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x 80-\xff])*\]))*/

関連するQ&A

  • メールアドレスの正規表現について

    こんにちは。 メールアドレスの正規表現について調べていたら、  \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* という正規表現が色々なサイトで見つかりました。 素人には何が何だか分からないのですが、この正規表現を素人でも わかる文章で表現するとどんな内容になるのでしょうか? 例:アドレスの部分は英数字記号で、アットマークで区切られて・・ という感じです。 よろしくお願いいたします。

  • PHPでメールアドレスをチェックする正規表現はどのように書いたらいいのでしょうか...

    PHPでメールアドレスをチェックする正規表現はどのように書いたらいいのでしょうか? ネットで検索して利用しましたがうまくいきませんでした。 例えば入力が aaa × aaa@ × aaa@s × aaa@s. × aaa@s.u ○ という正規表現が目標です もちろんRFCの基準に適応した文字列を考えています。 半角記号、半角英数字、半角英字がOKですよね・・。 教えてください。

    • ベストアンサー
    • PHP
  • 携帯アドレスの正規表現

    現在、携帯アドレスの正規表現を行っていますが、 どうもうまくいきません。 実際に正規表現をするのは@よりも前の文字列です。 現在下記のようにしますとひらがなもOKになってしまいます。 !ereg( "^[a-zA-Z0-9!#$%&*+/=?^_{|}~.-]+", $email ) 何かよい方法はご存知ないでしょうか?

    • ベストアンサー
    • PHP
  • RegExpでメールアドレスを取り出す方法

    いつもお世話になっております メールアドレスのString  Aさん <aaa@bbb.ne.ne.jp>,Bさん <bbb@bbb.ne.jp>,Cさん <ccc@ddd.jp.com> から  aaa@bbb.ne.ne.jp  bbb@bbb.ne.jp  ccc@ddd.jp.com を取り出すために正規表現のRegExpを用いました ですが、Pattarnに <.*> を用いると  aaa@bbb.ne.ne.jp>,Bさん <bbb@bbb.ne.jp>,Cさん <ccc@ddd.jp.com がhitしてしまいます。(Global=True、Falseのどちらでも) 何とかうまく3つのメールアドレスを取得する方法はないでしょうか よろしくお願いします

  • 正規表現で@を使う場合は\@とするべきか@とするべきか悩んでいます。

    正規表現で@を使う場合は\@とするべきか@とするべきか悩んでいます。 両方とも構文エラーが起きないのでその時点で?ですが .は\.としないと正規表現ではドット文字を認識しないのはわかりますが、正規表現の@はどうすればよいのでしょうか? Perl自体@も配列なので\@つけた方が・・・ よろしくお願いいたします。 $x = "test@example.com"; if ( $x =~ /[^a-zA-Z0-9\.\-\_@]/) if ( $x =~ /[^a-zA-Z0-9\.\-\_\@]/)

    • ベストアンサー
    • Perl
  • メールアドレス「あいうえお<xxx@yyy.zzz>」@より前の「xx

    メールアドレス「あいうえお<xxx@yyy.zzz>」@より前の「xxx」と@より後の「yyy.zzz」 を取り出したいと思っているのですが、正規表現でどのように書けばよいのでしょうか。 元のメールアドレスは「xxx@yyy.zzz」だけの場合もあったりします。 よろしくお願いいたします。

  • メールアドレス

    メールアドレスの@マークの前の文字がパソコンのメールアドレスと携帯電話のメールアドレスと同じでも可能でしょうか@の後ろが異なれば問題ないのでしょうか? 例 abcd@marumaru.ne.jp abcd@kakukaku.ne.jp

  • メールアドレスの正規表現

    メールアドレスの正規表現 正規表現の勉強をしています。下記のURLのメールアドレスの正規表現の一部が理解できません。 http://hodade.adam.ne.jp/seiki/page.php?s_mail ^[a-zA-Z0-9!$&*.=^`|~#%'+\/?_{}-]+@([a-zA-Z0-9_-]+\.)+[a-zA-Z]{2,4}$ この中の「[a-zA-Z]{2,4}$」の部分がわかりません。 行末が英文字2以上4以下というのは何を表しているのでしょうか? なぜ2以上4以下になるかが理解できません・・・ 宜しくお願いします!!

  • メールアドレス

    メールアドレスのことについて調べることになったんですがメールアドレスの@の後にくるのでyahoo.co.jpやdocomo.ne.jpやybb.ne.jpなどがあります。 できるだけ多く調べることになってます。 よく使われるメジャーな@の後の部分を知ってるだけ教えてください

  • 入力メールアドレスの妥当性チェック

    フォームから入力された、 メールアドレスの妥当性のチェックを行いたいのですが、 「日本語であるか否か」のチェックを行うことはできないのでしょうか? アルファベット/数字だけのチェックであれば問題ないのですが、 メールには _.- などの文字も含まれているので、 メールアドレスとして妥当かどうか、正確なチェック方法、 正規表現方法はないものかどうか、教えてください。 他のサンプルソースで拾った if ( ereg("^[^@]+@[^.]+\..+", $mail) ) { $status = 1; //メールアドレスっぽい } else { $status = 0; //メールアドレスではなさそう } という記述ですと、日本語、たとえば あいうえお@mail.goo.ne.jp でもOKになってしまいます。 よろしくお願いします。

    • ベストアンサー
    • PHP