$rule1="/(?:\w+)/";
$rule2="/(\w+)/";
preg_match($rule1,'Hi',$matches);
preg_match($rule2,'Hi',$matches2);
//打印 存入$matches和$matches2中的匹配项。
print_r($matches);
print_r($matches2);
测试后,$rule1,若匹配,则捕获整体,不会捕获子组
$rule2,若匹配,则捕获整体,并捕获子组
问题:既然不捕获子组,那么直接不用括号就可以,例如:‘/\w+/’
'/(?: \w+)/'是不是显得有点多余?
(?: pattern) 一般用在什么情况下?
1 回答
已采纳
习惯受伤
TA贡献885条经验 获得超1144个赞
(?:pattern) 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。
- 1 回答
- 0 关注
- 1872 浏览
添加回答
举报
0/150
提交
取消