>백엔드 개발 >PHP 문제 >PHP의 preg_match와 preg_match_all 함수의 차이점에 대한 간략한 토론

PHP의 preg_match와 preg_match_all 함수의 차이점에 대한 간략한 토론

醉折花枝作酒筹
醉折花枝作酒筹원래의
2021-03-23 11:57:332561검색

이 글은 PHP 정규 표현식에 포함된 preg_match 함수와 preg_match_all 함수를 분석하고 소개합니다. 도움이 필요한 친구들이 참고할 수 있습니다.

PHP의 preg_match와 preg_match_all 함수의 차이점에 대한 간략한 토론

preg_match_all() 함수

지정된 정규식에 따라 주어진 문자열을 검색하고, 특성에 일치하는 부분을 추출합니다.

$pattern='/t(.*?)st/';
$str='tgvregbvst      test    tdst';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);

출력 결과는 다음과 같습니다.

int(3) array(2) { [0]=> array(3) { [0]=> string(10) "tgvregbvst" [1]=> string(4) "test" [2]=> string(4) "tdst" } [1]=> array(3) { [0]=> string(7) "gvregbv" [1]=> string(1) "e" [2]=> string(1) "d" } }

그는 조건을 충족하는 모든 항목을 나열하지만 preg_match() 함수는 다릅니다.

preg_match() 함수

는 정규식 일치를 수행하고 패턴에 대한 일치 수를 반환합니다. preg_match()가 첫 번째 일치 후 검색을 중지하므로 값은 0(일치 없음) 또는 1이 됩니다. pattern的匹配次数。它的值将是0次(不匹配)或1次,因为preg_match()在第一次匹配后将会停止搜索。

$pattern='/t(.*?)st/';
$str='tgvregbvst      test    tdst';
var_dump(preg_match($pattern,$str,$arr));
var_dump($arr);

我们可以看到输出结果是:

int(1) array(2) { [0]=> string(10) "tgvregbvst" [1]=> string(7) "gvregbv" }

相比上一个函数,这个函数输出结果少了很多,这正是他们的不同之处。

preg_match_all()不同于preg_match()函数,它会一直搜索subject直到到达结尾。如果发生错误preg_match()返回falserrreee

출력 결과는 다음과 같습니다.

rrreee이전 함수와 비교하면 이 함수의 출력 결과가 훨씬 적습니다.

preg_match_all()은 끝에 도달할 때까지 subject를 계속 검색하는 preg_match() 함수와 다릅니다. 오류가 발생하면 preg_match()false를 반환합니다. 🎜🎜추천 학습: "🎜PHP 비디오 튜토리얼🎜"🎜

위 내용은 PHP의 preg_match와 preg_match_all 함수의 차이점에 대한 간략한 토론의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.