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. echo "귀하의 이메일 주소가 정확합니다!";}
4.그밖에{
5. echo “다시 시도해주세요!”;
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와 일치하지 않습니다. 또한 match , *는 0 이상을 의미합니다.
*는 0개 이상의 선행 문자를 나타냅니다.
[a-z0-9]*는 0개 이상의 영문자 또는 숫자와 일치합니다.
[-_]? "-"는 0 또는 1과 일치합니다. "-"는 연속해서 나타날 수 없기 때문입니다.
[a-z0-9]+는 끝으로 "-"를 사용할 수 없으므로 1개 이상의 영문자 또는 숫자와 일치합니다.
@ 반드시 하나는 있어야 한다 @
([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) {
$패턴 = "/([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);
echo "<사전>";
print_r($emailArr);
에코 "</pre>";
?>
다음과 같이 인쇄하십시오.
정렬
(
[0] =>[email protected]
[1] =>[email protected]
[2] =>[email protected]
[3] =>[email protected]
[4] =>[email protected]
)
3. 비교: 두 번째 정규식에는 첫 번째 정규식에 ^ 및 $가 없습니다.