什么是分组
通俗来说,我理解的分组就是在正则表达式中用()包起来的内容代表了一个分组,像这样的:
var reg = /(\d{2})/
reg.test('12'); //true
这里reg中的(/d{2})就表示一个分组,匹配两位数字
分组内容的的形式
一个分组中可以像上面这样有一个具体的表达式,这样可以优雅地表达一个重复的字符串
/hahaha/
/(ha){3}/
这两个表达式是等效的,但有了分组之后可以更急简洁。
体格分组中还可以有多个候选表达式,例如
var reg = /I come from (hunan|hubei|zhejiang)/;
reg.test('I come from hunan'); //true
reg.test('I come from hubei'); //true
也就是说在这个分组中,通过|隔开的几个候选表达式是并列的关系,所以可以把这个|理解为或的意思
分组的分类
分组有四种类型
- 捕获型 ()
- 非捕获型 (?