举例:str = MV&id=17328895840&scm=102reg = "/&id=(./)&/U";这样应该可以可以取到17328895840但是MV&id=17328895840这种就匹配不到了我试了下reg = "/&id=(./)[&|$]/U";也不行求教该如何写正则来同时匹配这两种情况谢谢

解决方案 »

  1.   

    顺便说下,不能"仅取数字"因为ID后边万一包含有其他字母呢?应该是考虑&和无&直接结尾的情况
      

  2.   

    $str = 'MV&id=17328895840';
    parse_str($str,$arr);
    print_r($arr);
      

  3.   


    那又如何从更长的字符串中取得MV&id=17328895840呢?感觉这个解决方式不太好用希望能有这样的正则:匹配以&id=为开头,以&为结尾/直接结尾之间的内容新手,不知道有没有这样的....
      

  4.   

    $reg =  = "/&id=(.+)(?:&|$)/U"; 
      

  5.   

    $reg = "/&id=(.+?)(&|$)/";