기본 PHP 개발 튜토리얼: 정규 표현식의 Atom
1. Atom
Atom은 직설적으로 말하면 일치해야 하는 내용입니다. 유효한 정규 표현식에는 하나 이상의 원자가 포함되어야 합니다.
보이는 문자와 보이지 않는 문자는 모두 원자입니다.
참고: 공백, 캐리지 리턴, 줄 바꿈, 0-9, A-Za-z, 중국어 및 구두점은 표시됩니다. , 특수 기호는 모두 원자입니다.
원자적 예제를 수행하기 전에 먼저 preg_match 함수를 설명하겠습니다.
구문:
int preg_match( string $regular , string $string[, array &$result] )
기능: $regular 변수를 기준으로 $string 변수를 일치시킵니다. 존재하는 경우 일치 항목 수를 반환하고 일치된 결과를 $result 변수에 넣습니다. 일치하는 결과가 없으면 0
을 반환합니다. 참고: 위는 preg_match에서 일반적으로 사용하는 주요 매개변수입니다. 위에는 다른 여러 매개변수를 나열하지 않았습니다. 다른 두 매개변수는 너무 드물기 때문입니다.
프로그램을 통해 검증해보자:
예: 코드는 다음과 같다
<?php //定义一个变量pattern,存放正则表达式 $pattern = '/a/'; //待搜素字段 $string = 'ddfdjjvi2jfvkwkfi24'; //判断,如果匹配到了,输出$matcges的值 if(preg_match($pattern, $string, $matches)){ echo '匹配到了,结果为:'; var_dump($matches); }else{ echo '没有匹配到'; } ?>
결과:
a를 매칭하고 싶은데 $string이 a로 존재하지 않아서 실패합니다.
이 예를 변환
예: 코드는 다음과 같습니다
<?php //定义一个变量pattern,存放正则表达式 $pattern = '/f/'; //待搜素字段 $string = 'ddfdjjvi2jfvkwkfi24'; //判断,如果匹配到了,输出$matcges的值 if(preg_match($pattern, $string, $matches)){ echo '匹配到了,结果为:'; var_dump($matches); }else{ echo '没有匹配到'; } ?>
결과:
The f 위의 문자열이 존재하므로 일치가 성공합니다
다음으로 공백을 일치시켜 보겠습니다.
예: 다음과 같이
<?php $zz = '/ /'; $string = 'sssssw aaaaa'; if(preg_match($zz, $string, $matches)){ echo '匹配到了,结果为:'; var_dump($matches); }else{ echo '没有匹配到'; } ?>
결과:
이 때문에 $string 변수의 w 문자 뒤에 공백이 있습니다. 따라서 일치가 성공하고 문자열 유형의 길이가 1로 출력됩니다. 단지 우리의 육안으로는 보이지 않아서 이 끈을 볼 수 없습니다.
2. 특별히 표시된 원자
참고: 여기에서 각각 기억해야 합니다. 라이브는 받아쓰기 수준에 도달하는 것이 가장 좋습니다. 암기할 때 쌍으로 기억하세요. d는 0-9와 일치하고 D는 0-9를 제외한 모든 문자입니다.
위 내용은 매우 명확하게 설명되어 있습니다. 단계별로 학습하기 위한 실험을 진행해 보겠습니다.
공부할 때 꼭 이 원자에 대한 받아쓰기 수준에 도달하시기 바랍니다. 왜냐하면 앞으로 실험을 하면 조금씩 배울 것이기 때문입니다.
3.d는 0~9와 일치합니다
코드는 다음과 같습니다.
<?php $zz = '/\d/'; $string = '床9前明月光'; if(preg_match($zz, $string, $matches)){ echo '匹配到了,结果为:'; var_dump($matches); }else{ echo '没有匹配到'; } ?>
4.D는 0-9
예: 코드는 다음과 같습니다
<?php header("Content-type:text/html;charset=utf-8"); $zz = '/\D/'; $string = '121243中23453453'; if(preg_match($zz, $string, $matches)){ echo '匹配到了,结果为:'; var_dump($matches); }else{ echo '没有匹配到'; } ?>
5. zA-Z0-9_
예제는 다음과 같습니다
<?php $zz = '/\w/'; $string = '新中_国万岁呀万岁'; if(preg_match($zz, $string, $matches)){ echo '匹配到了,结果为:'; var_dump($matches); }else{ echo '没有匹配到'; } ?>
6. W는 a-zA-Z0-9_가 아닌 것과 일치합니다. 🎜>
예제는 다음과 같습니다<?php $zz = '/\W/'; $string = 'afasABCWEQR44231284737'; if(preg_match($zz, $string, $matches)){ echo '匹配到了,结果为:'; var_dump($matches); }else{ echo '没有匹配到'; } ?>
7.s는 모든 공백 문자 n t r 공백과 일치합니다
예시는 다음과 같습니다<?php $zz = '/\s/'; $string = "中国万 岁"; if(preg_match($zz, $string, $matches)){ echo '匹配到了,结果为:'; var_dump($matches); }else{ echo '没有匹配到'; } ?>
8. S null이 아닌 문자
예는 다음과 같습니다.
<?php $zz = '/\S/'; $string = " a "; if(preg_match($zz, $string, $matches)){ echo '匹配到了,结果为:'; var_dump($matches); }else{ echo '没有匹配到'; } ?>
가 성공적으로 일치합니다. 공백이 있더라도 캐리지 리턴 및 들여쓰기가 수행됩니다. 그러나 공백이 아닌 문자 a가 있습니다. 따라서 경기는 성공합니다.
9. [] 원자 범위 지정
예제는 다음과 같습니다
<?php $zz = '/[0-5]\w+/'; $string = '6a'; $string1 = '1C'; if(preg_match($zz, $string, $matches)){ echo '匹配到了,结果为:'; var_dump($matches); }else{ echo '没有匹配到'; } ?>
다시 시도하여 $를 변경하세요. string을 $ string1로,
과 일치하는지 확인하세요. 결론:
위의 예에서 0-5는 $string과 일치하지 못했지만 $string1은 성공했습니다. 왜냐하면 $string의 첫 번째 값은 6이며 이는 [0-5] 범위에 속하지 않습니다.
10. [^ 문자]는 지정된 간격의 문자와 일치하지 않습니다.
코드는 다음과 같습니다:
<?php $zz = '/[^0-9A-Za-z_]/'; $string = 'aaaaab311dd'; $string1 = '!$@!#%$#^##'; if(preg_match($zz, $string, $matches)){ echo '匹配到了,结果为:'; var_dump($matches); }else{ echo '没有匹配到'; } ?>
결론 :
은 $string 매칭에 실패했으나, $string1 매칭에 성공했습니다. 대괄호 안에 곡절 기호가 있기 때문입니다.
^ 대괄호 안의 곡절 문자의 기능은 대괄호 안의 문자와 일치하지 않는 것입니다.
11. 요약