当你并不确定想匹配的字符之前是什么,但是不影响你匹配到你想要字符的时候可以如下.*?代替,很方便
$p = '/.*?:([\w\s]*)/';
$p = '/.*?:([\w\s]*)/';
2016-11-07
纯数字 $p = '/[\d]{3}-[\d]{8}/'; $p = '/\d+\-\d+/';
2016-11-07
已采纳回答 / yauby
因为匹配的结果会存储在变量$match中,即preg_match($p, $str, $match)中的参数$match,而这个参数$match是一个数组。因为你和教程的匹配方式不同,如果没有指明,匹配默认为贪婪模式,教程中的正则表达式明显有匹配name这个字符,匹配出的结果$match[0]为整个字符串"name:steven jobs",$match[1]才为steven jobs,而你的正则表达式则明显没有匹配name,所以当然$match[0]为steven jobs啦
2016-11-06