问题:模式中使用了小括号来分组,不过不希望与小括号中子模式匹配的文本出现在捕获的匹配数组中。 解决方案:在开始小括号后面加上?:
阻止文本捕获
$bothMatches包含rel和href属性的值。不过,$linkMatches只包含href属性的值。代码的输出如下:
如果一个子模式是可选的,阻止捕获尤其有用。因为它可能不在捕获的文本数组中出现,所以可选的子模式会改变捕获的文本块个数。这样一来,就很难引用给定索引位置上的特定匹配文本。要求可选的子模式不捕获文本,就可以防止这个问题。
建站咨询
在线咨询真诚为您提供专业解答服务
咨询热线
137 1731 25507×24小时服务热线
微信交流