前段时间,看了zepto.js的源码,顺便对正则表达式做了一些回顾。
首先,先来看一下正则表达式的一些常见语法。
1、 (pattern)、(?:pattern)、(?=pattern)、(?!pattern)字符的说明
- (pattern):匹配pattern并捕获该匹配的子表达式。如:"mytest".match(/y(test)/ig); //["ytest", "test"];
- (?:pattern):匹配pattern并不捕获匹配的子表达式。如:"mytest".match(/y(?:test)/ig); //["ytest"];
- (?=pattern):执行正向预测先行搜索的子表达式,该表达式匹配处于匹配的字符串的起始点的字符串,是一个非捕获匹配。如:"mytest".match(/y(?=test)/ig); //["y"];
- (?!pattern):执行反向预测先行搜索的子表达式,该表达式匹配不处于匹配的字符串的起始点的搜索字符串,也是一个非捕获匹配。如:"mytest".match(/y(?!est)/ig);//["y"]。