首页 >社区问答列表 >关于抑扬符'^'的用法

关于抑扬符'^'的用法

<?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_]的范围之内,为什么只输出一个'!'呢


  • 寻觅 beyond
  • 寻觅 beyond     2017-11-09 12:57:35 1楼

    preg_match()只匹配一次,如果匹配到符合条件的内容就不再继续匹配,如果你要匹配所有符合条件的可以用preg_match_all($pattern,$string,$arr),$arr会保存匹配到的所有符合条件的内容

    +0 添加回复

  • 回复