[PHP-users 8641] Re: 正規表現関数について

Naomasa Numajiri php-users@php.gr.jp
Sat, 13 Jul 2002 13:48:50 +0900


こんにちは、

; if
; (ereg("(/[0-9A-Za-z\-]+[\-\.\w\/]*\@([0-9A-Za-z]+[\-\w]*\.){1,4}[0-9A-Za-z]+
; /)",$regs[2],$add)) {
; print($add[0]);
; }else{
; print("non");
; }

おそらくいきなり複雑な正規表現を扱うから難しいのではないでしょうか?

ひとまず以下の正規表現から初めて、正規表現の情報と格闘し、一つ一つの正規表現
の意味を理解しながら、上記の正規表現に近づけていくのはどうでしょう?

# どちらも「正しいメールアドレス」ならマッチしますが、以下の簡単な正規表現
# だとおそらく「正しくないメールアドレス」も「メールアドレス」としてマッチ
# するはずです。
# 「下の正規表現だとマッチするが、上記の正規表現だと「間違っている」として
# くれるケースはどのようなものがあるか?」を考えながら作業すると、より理解が
# 深まると思います。

参考になれば。

------------------------------------------------------- begin
<?php
$mailaddr = 'ariaricom@ybb.ne.jp';
if(
    ereg(
//      '(/[0-9A-Za-z\-]+[\-\.\w\/]*\@([0-9A-Za-z]+[\-\w]*\.){1,4}[0-9A-Za-z]+/)',
        '([^@]+@[^@]+)',
        $mailaddr,
        $add
    )
) {
    print($add[0]."\n");
} else {
    print("non"."\n");
}
?>
------------------------------------------------------- end