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