人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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


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

●質問者: くいっぱ
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Perl PHP URL アドレス サイト
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ToMmY
●20ポイント

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

これじゃだめですかね?

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

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

◎質問者からの返答

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

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

>||

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

return 0;

}

||<

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


2 ●
●50ポイント

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ