$rule1="/(?:\w+)/";
$rule2="/(\w+)/";
preg_match($rule1,'Hi',$matches);
preg_match($rule2,'Hi',$matches2);
//打印?存入$matches和$matches2中的匹配項(xiàng)。
print_r($matches);
print_r($matches2);
測(cè)試后,$rule1,若匹配,則捕獲整體,不會(huì)捕獲子組
????$rule2,若匹配,則捕獲整體,并捕獲子組
????????
問(wèn)題:既然不捕獲子組,那么直接不用括號(hào)就可以,例如:‘/\w+/’
??????'/(?:?\w+)/'是不是顯得有點(diǎn)多余?
???(?:?pattern)?一般用在什么情況下?
1 回答
已采納

習(xí)慣受傷
TA貢獻(xiàn)885條經(jīng)驗(yàn) 獲得超1144個(gè)贊
(?:pattern) 匹配 pattern 但不獲取匹配結(jié)果,也就是說(shuō)這是一個(gè)非獲取匹配,不進(jìn)行存儲(chǔ)供以后使用。這在使用 "或" 字符 (|) 來(lái)組合一個(gè)模式的各個(gè)部分是很有用。例如, 'industr(?:y|ies) 就是一個(gè)比 'industry|industries' 更簡(jiǎn)略的表達(dá)式。
- 1 回答
- 0 關(guān)注
- 1910 瀏覽
添加回答
舉報(bào)
0/150
提交
取消