URLアドレスやメールアドレスなどを抜き出すための一般的な正規表現をまとめたサイトはありませんか?



perlではいくつかあるようなので、PHP(preg_match)で使えるようなサイトをお願いします。

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:2006/04/06 17:45:49
  • 終了:2006/04/06 22:15:32

回答(2件)

id:ToMmY No.1

ToMmY回答回数656ベストアンサー獲得回数192006/04/06 17:50:12

ポイント20pt

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k09.htm

これじゃだめですかね?

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

いろいろな言語についてのってます。

id:kuippa

すいません、正規表現演算子の例じゃなくて、パターンの方の例をお願いしたかとです。

メールアドレスの抜き出しパターンはこんなですよーみたいな。。。

>||

if (!preg_match('/^[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+$/',$mailadr)){

return 0;

}

||<

抜き出しにも、いろいろなパターンがあると思うので、それらがまとめられているページを探しています。

2006/04/06 18:53:38
id:bonlife No.2

回答回数421ベストアンサー獲得回数752006/04/06 21:51:19

ポイント50pt

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に挑んだ例です。

参考になると思いますので類似質問も確認してみてください。

id:kuippa

ありがとうございます。

>>

$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にありましたか、私的にはこの程度まとまっていれば充分です(^-^;

ありがとうございました。

回答者ははてな記法つかえないみたいですね・・・

2006/04/06 22:14:43

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません