简介和工具
什么是正则表达式?
使用单个字符串描述,匹配一系列符合某个句法规则的字符串。
使用场景
1.比如在 IDE 里使用正则查找替换
2.在 linux 里寻找当前目录下的 .txt 文件
find ./ -name *.txt
图形工具
https://regexper.com/, 访问不了安装本地服务:https://gitlab.com/javallone/regexper-static
开始使用
常用规则
1.开始结束: ^1 (第一个分组)
6.构建一个类 []
7.单词边界 \b
8.全文匹配 g
9.忽略大小写 i
10.取反 ^,通常写在 [^abcd] 里
11.一次或多次 +
12.在分组内加入(?:reg)则该分组不会被匹配
13.前瞻和后顾:
// 前瞻:
exp1(?=exp2) 查找exp2前面的exp1
// 后顾:
(?<=exp2)exp1 查找exp2后面的exp1
// 负前瞻:
exp1(?!exp2) 查找后面不是exp2的exp1
// 负后顾:
(?<!exp2)exp1 查找前面不是exp2的exp1
eg: a2*3 匹配一个字母跟着一个数字,并替换该字母为 X
'a2*3'.replace(/\w(?=\d)/g, 'X')
使用方式
1.字面量 var reg = \ regexp \
2.构造函数 new RegExp()
test 和 exec 方法
1.test 某个字符串的时候如果加 g(全局匹配修饰符),多次执行结果会不同,原因是全局匹配模式会从 当前匹配结果的最后一个字符的下一个位置 开始匹配。
2.调用非全局 RegExp 对象的 exec 方法时返回数组,第一个元素是匹配的文本,第二个是与第一个子表达式(也就是()内的内容)匹配的文本,第三个是第二个子表达式匹配的文本(如果有的话),以此类推