<?php
header('Content-Type: text/html; charset=utf-8');
$pattern='/[^0-9A-Za-z_]/';
$string='! $@!#%$#^##';
if(preg_match($pattern, $string,$match)){
echo '일치됨, 결과는 다음과 같습니다.';
var_dump($match);
}
else {
echo 'No match';
}
?>
출력: 일치, 결과는 다음과 같습니다: array(1) { [0]=> "!" $ [^0-9A-Za-z_] 범위에 포함되지 않는 문자열이 많은데 왜 '!' 하나만 출력되나요?
preg_match()는 한 번만 일치합니다. 조건을 충족하는 콘텐츠와 일치하면 즉시 반환되며 나중에 조건을 충족하는 다른 콘텐츠가 있더라도 계속 일치하지 않습니다.
preg_match()는 한 번만 일치합니다. 조건을 충족하는 콘텐츠와 일치하면 더 이상 일치하지 않습니다. 조건을 충족하는 모든 콘텐츠를 일치시키려면 preg_match_all($pattern, $string, $arr)을 사용할 수 있습니다. , $arr은 일치하는 모든 콘텐츠를 저장합니다