PHP の通常の一致する電子メール コードがさらに詳細に分析されているので、これについて質問がある友人は参照してください。
コード:
1.<?php
2. if (ereg(“/^[az]([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[- _]?[a-z0-9]+)+[.][az]{2,3}([.][az]{2})?$/i;
3. 「あなたのメールアドレスは正しいです!」をエコーします;}
4.else{
5. 「もう一度お試しください!」とエコーします。
6. }
7. ?>
国際ドメイン名の形式は次のとおりです。
ドメイン名は、各国の特定の文字セット、英字、数字、および「-」(ハイフンまたはマイナス記号)の任意の組み合わせで構成されます。ただし、「-」を先頭または末尾に含めることはできません。連続して出現することはできません。 ドメイン名の文字は大文字と小文字が区別されません。ドメイン名の長さは最大 60 バイトです (サフィックス .com、.net、.org などを含む)。
/^[az]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9] ]+)+[.][az]{2,3}([.][az]{2})?$/i;
/content/i は、大文字と小文字を区別しない正規表現を形成します。
^ 試合開始
$ 試合終了
[az] 電子メールの接頭辞は英文字で始まる必要があります
([a-z0-9]*[-_]?[a-z0-9]+)* は _a_2、aaa11、_1_a_2 に一致しますが、a1_、aaff_33a_、a__aa には一致しません。NULL 文字の場合は一致します。にも一致します。 * は 0 以上を意味します。
* は 0 個以上の先行文字を表します。
[a-z0-9]* は 0 個以上の英字または数字と一致します
[-_]? 「-」は連続して出現できないため、0 または 1 つの「-」と一致します。
[a-z0-9]+ は、「-」を末尾として使用できないため、1 つ以上の英語の文字または数字と一致します。
@ @ は 1 つ必要です
([a-z0-9]*[-_]?[a-z0-9]+)+ 上記を参照 ([a-z0-9]*[-_]?[a-z0-9]+)*説明ですが、空にすることはできません。+ は 1 つ以上を意味します。
[.] 特殊文字 (.) を通常の文字として扱います
[az]{2,3} は、2 ~ 3 個の英字 (通常は com や net など) に一致します。
([.][az]{2})? 0 または 1 [.][az]{2} (.cn など) と一致します。.com.cn の最後の部分かどうかはわかりません。通常は 2 桁ですが、そうでない場合は、{2} を {開始単語の数、終了単語の数} に変更してください。
詳細な説明付きの完璧な電子メール正規表現です。テストにご協力ください。 2. 次の文字列内の電子メールを抽出します。
<?php
関数 getEmail($str) {
$pattern = "/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0] -9]+)+[.][az]{2,3}([.][az]{2})?/i";
preg_match_all($pattern,$str,$emailArr);
$emailArr[0] を返します;
}
$emailstr = " [email protected]私は Mivi 出身ではないので、iid メーリング リストを開きました: [email protected]と[email protected] ;.;;、 [email protected]、 [email protected] ";
$emailArr = getEmail($emailstr);
エコー "<pre>";
print_r($emailArr);
エコー "</pre>";
?>
次のように印刷します。
配列
(
[0] =>[email protected]
[1] =>[email protected]
[2] =>[email protected]
[3] =>[email protected]
[4] =>[email protected]
)
3. 比較: 2 番目の正規表現には、最初の正規表現の ^ と $ がありません。