$p = '/\w{4}:(\w{6}\s{1}\w{4})/';可以$p = '/\w{6}\s{1}\w{4}/';不行 为什呢?呢??????????
如果是$p = '/\w{4}:(\w{6}\s{1}\w{4})/';
$match[0]=name:steven jobs
$match[1]=steven jobs
如果是$p = '/\w{4}:(\w{6}\s({1}\w{4}))/;
$match[0]=name:steven jobs
$match[1]=steven jobs
$match[2]=jobs
至于具体原因在于int preg_match( string pattern, string subject [, array matches [, int flags]] )函数
如果提供了 matches,则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。
所以就会出现你的现象了
你这样可以,但是打印的时候要是 mantch[0]