正则表达式
简介
1,什么是正则表达式?
正则表达式,又称规则表达式。是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。
2,正则表达式的主要作用?
- 测试字符串的某个模式;
- 替换文本;
- 根据模式匹配从字符串中提取一个子字符串。
3,正则表达式的组成?
正则表达式由两种基本字符类型组成:普通字符和元字符。
普通字符:仅能够描述其本身,例如所有的字母和数字。
元字符:指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。例如^、$、.、*、+、?、=、!、:、|、\、/、()、[]、{}。
声明
1,通过new关键词来定义正则表达式对象
let reg = new RegExp("[abc]");
2,以/开头,/结尾,中间内容为正则表达式
let reg = /[abc]/;
方法
正则表达式中的两个常用方法
- test():返回一个boolean值(true或false),代表是否匹配;
let reg = /[abc]/;
let a = "sjakvhqwj";
console.log(reg.test(a));//返回值为true
- exec():返回一个数组,数组中存放的是正则匹配的元素,如果不匹配,返回null
let reg = /[abc]/;
let a = "kshabckjgh";
let b = "jhihhio";
console.log(reg.exec(a));//[a]
console.log(reg.exec(b));//null
正则表达式部分字符
- .:匹配除换行以外的任意一个字符
- \ .:匹配一个.
- ^:匹配字符串的开始
- $:匹配字符串的结束
- |:或者
- ():分组,组从左到右进行查询
- \num:引用第num组的匹配的内容,num从1开始
- \w:匹配任意一个字母,数字或下划线,等价于[0-9A-Za-z_]
- \W:匹配除了字母,数字,下划线或汉字以外的任意一个字符,等价于[^0-9A-Za-z_ ]
- \s:匹配任意一个空白符,等价于[\f\n\r\t\v]
- \S:匹配任意一个非空白符,等价于[^\f\n\r\t\v]
- \d:匹配一个数字字符,等价于[0-9]或[0123456789]
- \D:匹配一个非数字字符,等价于[0-9]或[0123456789]
- {n}:匹配n个字符
- {n,}:匹配至少n个字符
- {n,m}:匹配n到m个字符
- ?:非捕获组匹配
贪婪式表达式(尽可能多的匹配)
- *:匹配0到多个字符,等价于{0,}
- +:匹配至少1个字符,等价于{1,}
- ?:匹配0到1个字符,等价于{0,1}
非贪婪式表达式(尽可能少的匹配)
- *?:匹配0到多个字符,等价于{0,}
- +?:匹配至少1个字符,等价于{1,}
- ??:匹配0到1个字符,等价于{0,1}
断言
- 正向确定断言(?=)
- 正向否定断言(?!)
- 反向确定断言(?<=)
- 反向否定断言(?<!)
暂时总结到这,后期继续补充…