0

私はこのコードを使用して、文字列から電子メールを解析しています。

function get_emails ($str) {
    $pattern = '/([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])' .
    '(([a-z0-9-])*([a-z0-9]))+' . '(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)/i';

    preg_match ($pattern, $str, $matches);

    return $matches;
}

アドレスにドメイン内に複数のピリオドがある場合を除いて、これはうまく機能します。したがって、johndoe @ yahoo.comは正常に機能しますが、johndoe@yahoo.co.ukはjohndoe@yahoo.coでカットされます。

これを修正するために何を変更できますか?

ありがとう!

4

1 に答える 1

0

終了前にを追加できます。+つまり、+/i

于 2013-03-25T18:02:48.350 に答える