进阶 - 匹配但不保存 ¶
作者:KK
发表日期:2017.9.10
JS版说明 ¶
console.log( 'abc industries defg'.match(/industr(y|ies)/) );
会得到industries
和ies
两个元素的数组,如果不想将括号里的内容储存到匹配结果里,在括号里前面加上?:
就可以了,如下:
console.log( 'abc industries defg'.match(/industr(?:y|ies)/) );
这个?:
看上去和前面《正反向预查》里面的?=
和?!
好像差不多的样子,看上去差不多,但是?:
至少会匹配括号外面和里面的内容形成一个整体,只是不将括号里的内容单独再保存一份在结果里而已
PHP代码 ¶
preg_match('#industr(y|ies)#', 'abc industries defg', $matchResult1);
preg_match('#industr(?:y|ies)#', 'abc industries defg', $matchResult2);
header('Content-type:text/plain');
print_r([
$matchResult1, //industries和ies
$matchResult2, //只有 industries
]);