يتم تحليل رمز البريد الإلكتروني المطابق العادي لـ PHP بمزيد من التفاصيل وآمل أن يتمكن الأصدقاء الذين لديهم أسئلة حول هذا الأمر من إلقاء نظرة.
شفرة:
1.<?ب
2. إذا (ereg(“/^[az]([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[- _]?[a-z0-9]+)+[.][az]{2,3}([.][az]{2})?$/i ”,$email)){
3. صدى "عنوان بريدك الإلكتروني صحيح!";}
4. آخر {
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 إذا كان حرفًا فارغًا، فسيفعل ذلك تتطابق أيضًا مع * تعني 0 أو أكثر.
* يمثل 0 أو أكثر من الأحرف السابقة.
[a-z0-9]* يطابق 0 أو أكثر من الحروف أو الأرقام الإنجليزية
[-_]؟ يطابق 0 أو 1 "-"، لأن "-" لا يمكن أن يظهر على التوالي
[a-z0-9]+ يطابق حرفًا أو أرقامًا إنجليزية واحدة أو أكثر، لأنه لا يمكن استخدام "-" كنهاية
@ يجب أن يكون هناك واحد @
([a-z0-9]*[-_]?[a-z0-9]+)+ انظر أعلاه ([a-z0-9]*[-_]?[a-z0-9]+)* الشرح، ولكن لا يمكن أن يكون فارغا، + يعني واحد أو أكثر.
[.] تعامل مع الأحرف الخاصة (.) كأحرف عادية
[az]{2,3} يتطابق مع 2 إلى 3 أحرف إنجليزية، عادةً com أو net، وما إلى ذلك.
([.][az]{2})؟ يطابق 0 أو 1 [.][az]{2} (مثل .cn، وما إلى ذلك) لا أعرف ما إذا كان الجزء الأخير من .com.cn يتكون عادة من رقمين، إذا لم يكن كذلك، يرجى تغيير {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. المقارنة: التعبير العادي في الثاني لا يحتوي على ^ و$ في الأول؛