perlではいくつかあるようなので、PHP(preg_match)で使えるようなサイトをお願いします。
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k09.htm
これじゃだめですかね?
http://www.kt.rim.or.jp/~kbk/regex/regex.html
いろいろな言語についてのってます。
Perlの正規表現もpreg_matchも基本的な部分は同じはずですので、Perlのサンプルを流用してみてはどうでしょうか。
とは言いつつもPHPのサンプルを探してみました。
オフィシャルのpreg_matchのコメントにもメールアドレスのチェックの例はありました。
<?php if(preg_match( '/^[A-Z0-9._-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9]\.[A-Z.]{2,6}$/i' , $data) ) return true; ?>
蛇足になりますが、ご存知かと思いますがRFCの定義にあわせたメールアドレスの定義はひどく複雑になります。
正規表現でRFCに挑んだ例です。
参考になると思いますので類似質問も確認してみてください。
ありがとうございます。
>>
$mail_regex =
q{(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\} .
q{\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[^\x80-\xff][} .
q{^\\\\\x80-\xff\n\015"]*)*")(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x} .
q{80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-} .
q{\xff\n\015"]*(?:\\\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*"))*@(?:[^(} .
q{\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\0} .
q{00-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*} .
q{\])(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,} .
q{;:".\\\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[} .
q{^\x80-\xff])*\]))*};
<<
メールアドレスでコレは凹みますね。
実は最初にコレを見つけて、PHP版ないかなぁと探そうかと思ったわけです。
phpspotにありましたか、私的にはこの程度まとまっていれば充分です(^-^;
ありがとうございました。
回答者ははてな記法つかえないみたいですね・・・
すいません、正規表現演算子の例じゃなくて、パターンの方の例をお願いしたかとです。
メールアドレスの抜き出しパターンはこんなですよーみたいな。。。
>||
if (!preg_match('/^[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+$/',$mailadr)){
return 0;
}
||<
抜き出しにも、いろいろなパターンがあると思うので、それらがまとめられているページを探しています。