正则表达式
正则表达式是专门用来处理字符串的
1.正则表达式可以从字符串中 查找 需要的 数据
2. 正则表达式 可以从字符串中 获取 需要的 数据
3. 正则表达式 可以从字符串中 替换 需要的 数据
正则表达式是由特殊的字符组成的
1.abc : 匹配 abc 字符串
let regex1 = new RegExp("abc")
2.[] : 中括号中可以写多个任意字符,代表只匹配一个字符
let regex1 = new RegExp("[abcdf]")
3.[abc] : 代表 可以匹配 a , b , c 三个字母中的任意一个字符
let regex1 = new RegExp("[abc]")
4.[a-z] : 匹配 小写 字母中的任意一个
let regex1 = new RegExp("[a-z]")
5.[A-Z] : 匹配 大写 字母中的任意一个
let regex1 = new RegExp("[A-Z]")
6.[A-Za-z] : 匹配 所有的 字母
let regex1 = new RegExp("[A-Za-z]")
7.[0-9] : 匹配 任意一个 数字
let regex1 = new RegExp("[0-9]")
8.[^ ] : 如果 中括号 中, 以 ^ 开头, 代表 非
9. [^0-9] : 匹配 非数字中的任意一个字符
10.[^a-z] : 匹配 非小写字母的任意一个字符
11.\d : 匹配任意一个 数字, 等价于 [0-9]
12.\D : 等价于 [^0-9]
13. \w : 匹配 字母、数字、和下划线 中的任意一个字符串 [a-zA-Z0-9_]
14.\W : 等价于 [^a-zA-Z0-9_]
15.\s : 匹配一个空白字符 (空格 和 Tab制表符产生的空白)
16. \S : 匹配 任意一个非空白字符
17… : 匹配 除 换行符 之外的所有 任意一个 字符
19… : 匹配一个 点
20.x{n}:匹配n个x
21.X{n, } : 匹配 至少 n 个 X
22. X{n, m} : 匹配 n 到 m 个 X
贪婪表达式
1.X* : 匹配 0到多个 ,等价于 X{0,}
2.X+ : 至少匹配一个 ,等价于 X{1,}
3.X? : 匹配最多一个, 等价于 X{0, 1}
非贪婪表达式
在贪婪表达式后加一个?
1.X*? : 匹配 0到多个
2.X+? : 至少匹配一个
3.X?? : 匹配最多一个
限定符
1.^ : 如果出现在正则的第一个位置,则代表 以 … 开头
2. $ : 如果出现在正则的尾部,代表 以 … 结尾
选择
| : 或
分组
( … ) 小括号, 组从左到右进行查询
引用
\num : 引用第 num 组的匹配的内容 , num 从 1 开始
regex = /rest\/(?<id>\d+)/
let path = "rest/1" ;
console.log(regex.exec(path))
命名捕获
· (?\d+) 将 \d+ 匹配的内容 赋值给 key, 可以通过 exec().groups 来进行获取·
断言
1.正向确定断言 ?=
2.正向否定断言 ?!
3.反向确定断言 ?<=
let version = "Wind1ow 98";
regex = /(?<!Window)\s+(\w+)/
console.log(regex.exec(version))
4.反向否定断言 ?<!
正则表达式中的两个方法
1.test() : 返回 一个 boolean 值, 代表 是否匹配
2.exec() : 返回一个 数组、数组中 存放 的是 正则 匹配的元素, 如果不匹配,返回 null