多选分支
一个模式可以实现横向和纵向模糊匹配,而多选分支可以支持多个子模式任选其一
具体形式如下(p1|p2|p3)
其中p1
,p2
,p3
是子模式,用|
隔开,表示其中任何之一
例如要匹配字符串good
和nice
可以使用/good|nice/
可视化形式如下:
测试如下:
js
var regex = /good|nice/g;
var string = = "good idea, nice try.";
console.log(string.match(regex))
// ["good", "nice"]
分支惰性
在多选分支中,各个子模式是按顺序进行尝试的,也就是说,如果第一个子模式匹配成功,那么后面的子模式将不会被尝试
比如:
js
var regex = /good|goodbye/g;
var string = "goodbye";
console.log(string.match(regex));
// ["good"]
- 而把正则改成
/goodbye|good/
结果是
js
var regex = /goodbye|good/g;
var string = "goodbye";
console.log(string.match(regex));
// ["goodbye"]