搜尋

首頁  >  問答  >  主體

關於抑揚符'^'的用法

<?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_]的範圍之內,為什麼只輸出一個'!'呢


#
WillWill2578 天前2470

全部回覆(2)我來回復

  • 寻觅 beyond

    寻觅 beyond2017-11-09 12:58:41

    preg_match()只匹配一次,如果匹配到符合條件的內容就立即返回,不再繼續匹配了,即使後面還有符合條件的。

    回覆
    0
  • 寻觅 beyond

    寻觅 beyond2017-11-09 12:57:35

    preg_match()只匹配一次,如果匹配到符合條件的內容就不再繼續匹配,如果你要匹配所有符合條件的可以用preg_match_all($pattern,$string,$arr),$arr會保存匹配到的所有符合條件的內容

    回覆
    0
  • 取消回覆