想知道例如我有个字符串A:"1,3,4,5,6,7,8,9,10,11,12,14,15,17,20,22,123,457",
例如我想知道这个字符串里面是否含有"2",这时候"12","20","22"等之类是不是会干扰结果?怎么匹配查找能精确找出来?
还有就是别说先分割字符串,把字符串分割成数组,再逐个匹配,那样我知道可以的,操作比较麻烦,我就是想找个简单的方法?请问怎么搞?

解决方案 »

  1.   

    看我http://topic.csdn.net/u/20100605/10/99f2102f-c875-4336-9d49-76aa2ec40f76.html回复,能实现这个功能,很类似
      

  2.   

    if(in_array('2',explode($str,','))
    哪里复杂?
      

  3.   


    //2楼方法挺好的,不过explode,参数搞错了,这里的意思,反过来才是
    //效率上,strpos要好一些,毕竟没有产生数组,遍历的过程,不过不是专门计算,对于量不是很大,无谓
    $str= '1,3,4,5,6,7,8,9,10,11,12,14,15,17,20,22,123,457';
    if(strpos(',' . $str . ',', ',2,') !== false)
    {
     //TODO
    }
      

  4.   

    if(preg_match("/[^\d]*2[^\d]", $A)){
      //match
    }
      

  5.   

    <?php
    echo preg_match('/(?<=^|,)2(?=,|$)/','1,3,4,5,6,7,8,9,10,11,12,14,15,17,20,22,123,457');
    ?>
      

  6.   

    if(in_array('2',explode(',',$str))$str= '1,3,4,5,6,7,8,9,10,11,12,14,15,17,20,22,123,457';
    if(strpos(',' . $str . ',', ',2,') !== false)
    {
     //TODO
    }echo preg_match('/(?<=^|,)2(?=,|$)/','1,3,4,5,6,7,8,9,10,11,12,14,15,17,20,22,123,457');
    都可以
      

  7.   

    首先要拆分为数组,用explode函数。然后用in_array()函数判断
      

  8.   


    <?php
      phpinfo();
    ?>