preg_match_all('/(.*),/U','苍井空,阿里巴巴,大面兄,陈老师,丑货不错,大面面很大',$content);
如果我在最后面加U,可以分割开,
Array ( [0] => Array ( [0] => 苍井空, [1] => 阿里巴巴, [2] => 大面兄, [3] => 陈老师, [4] => 丑货不错, ) [1] => Array ( [0] => 苍井空 [1] => 阿里巴巴 [2] => 大面兄 [3] => 陈老师 [4] => 丑货不错 ) )
如果不加U就成了这样
 ( [0] => Array ( [0] => 苍井空,阿里巴巴,大面兄,陈老师,丑货不错, ) [1] => Array ( [0] => 苍井空,阿里巴巴,大面兄,陈老师,丑货不错 ) ),

解决方案 »

  1.   

    你要区别开 大写的U 和小写的u 是代表不同的意思!小写u 代表PCRE_UTF8,字符匹配将按照utf8编码处理大写U 代表PCRE_UNGREEDY, 禁止贪婪匹配 只跟踪到最近的一个匹配符并结束(相当于/(.*?),/
      

  2.   

    你在()后面加上逗号,就是说逗号结尾的字符串
    pcre默认为贪婪模式,就是尽可能多匹配,"."表示任意非换行符的字符,所以当然也包括逗号在内加上大写U表示非贪婪模式,就是匹配最少的可能,所以pcre把每次遇到逗号都分割为一个字符串
    另外,小写u是说明正则是用于匹配utf-8编码字符串的