[不懂就要問]正則表達式輸出用數(shù)組?
<?php //請修改變量p的正則表達式,使他能夠匹配str中的姓名 $p?=?'/\w{6}\s\w{4}/'; $str?=?"name:steven?jobs"; preg_match($p,?$str,?$match); echo?$match[0];?//結(jié)果為:steven?jobs
這是我寫的,改了一下就對了,數(shù)組的鍵為0
<?php //請修改變量p的正則表達式,使他能夠匹配str中的姓名 $p?=?'/name:([\w\s]+)/'; $str?=?"name:steven?jobs"; preg_match($p,?$str,?$match); echo?$match[1];?//結(jié)果為:steven?jobs
這是教程給出的答案,數(shù)組的鍵為1
兩個問題:
1????為什么要用數(shù)組才能輸出?
2????為什么教程給出的用$match[1]?我的是[0]?
2016-11-07
因為匹配的結(jié)果會存儲在變量$match中,即preg_match($p,?$str,?$match)中的參數(shù)$match,而這個參數(shù)$match是一個數(shù)組。
因為你和教程的匹配方式不同,如果沒有指明,匹配默認(rèn)為貪婪模式,教程中的正則表達式明顯有匹配name這個字符,匹配出的結(jié)果$match[0]為整個字符串"name:steven?jobs",$match[1]才為steven?jobs,而你的正則表達式則明顯沒有匹配name,所以當(dāng)然$match[0]為steven?jobs啦
2016-11-08
對你有幫助我就很開心了,建議你在學(xué)習(xí)每一節(jié)的時候看一下下面別人的評論,會有很大幫助