<?php $str="aebecdeefS3j1";
preg_match('/e?/',$str,$array);
print_r($array);
?>怎么没有匹配到"e"这个字符啊啊啊

解决方案 »

  1.   

    <?php
        $str="aebecdeefS3j1";
        preg_match_all('/[e]?/',$str,$array);
        print_r($array);
    ?>
      

  2.   

    /e?/表示“字母e或者啥都没有”,preg_match函数只匹配1次,匹配到“啥都没有”也算成功,所以第一个字母判断的时候就完结了。如果你把
    "aebecdeefS3j1"改成
    "ebecdeefS3j1"就可以匹配到e
    另外去掉?也可以,表示匹配字母e才算成功,这样就一定要找出e来才完结。
    另外preg_match_all的效果是多次匹配,你可以自己试试写 e和e?的时候preg_match_all所得的不同效果,直观看看。