<?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 '沒有符合';
}
?>
#輸出:符合到了,結果為:array(1) { [0]=> string(1) "!" }
我不懂$string中有很多不在[^0-9A-Za-z_]的範圍之內,為什麼只輸出一個'!'呢
preg_match()只匹配一次,如果匹配到符合條件的內容就立即返回,不再繼續匹配了,即使後面還有符合條件的。
preg_match()只匹配一次,如果匹配到符合條件的內容就不再繼續匹配,如果你要匹配所有符合條件的可以用preg_match_all($pattern,$string,$arr),$arr會保存匹配到的所有符合條件的內容