一、限定 运算
1、? 匹配当前的字符可有可无都会匹配
2、* 号标识当前的字符出现0次或者一次或者多次但是 ab*c
3、+ 号表示匹配一次或者多次不会出现匹配0次 ab+c
4、{} 号是精确匹配的次数 ab{2,6}c 匹配2到6次 ab{2,} 表示匹配 2到无数个
5、() 匹配多个字符同时出现的次数 (ab)+c 标识ab同时出现的次数(分组)
二、“或” 运算
1、| 或匹配运算符号 (cat|dog) 标识匹配cat或者dog
三 字符类
1、[] 只能匹配[]里面的字符 [abc]+ 例如[a-zA-Z]匹配大写a-z 和A-Z
2、[] 匹配 [^ 0-9 意外的字符 除了0-9意外的数字 包括换行符号
三、元字符
1、\d 代表数字字符 相当于 [0-9]
2、\w 代表单词字符英文、数字以及下划线
3、\s 代表空白符(Tab和换行符)
4、\D 代表非数字字符
5、\W 代表非单词字符
6、\S 代表非空白字符不是空白的都匹配
7、. 任意字符不包含换行符号
8、^ 只会匹配行首的字符 ^a
9、$ 只会匹配行末尾字符 a
10、\b 结束匹配
四、贪婪与懒惰匹配
1、<.+?> 把贪婪匹配变成懒惰匹配 只匹配里面的<里面的>
2、#[a-fA-F0-9]{6}\b 匹配a-f A-F 精确匹配6位 \b 不符合的去掉
5、捕获
就是利用(捕获的内容) string.match( /^([a-z])/) 意思是捕获以字母开头的
6、断言
reg = /个(?=日子)/
let str1 = "今天是个日子,日子红红火火过大年"
console.log(str1.replace(reg1, '好'));//今天是好日子,日子红红火火过大年
7、平衡组
TODO