正则表达式
语法:
一、普通字符
数字、字母、下划线、汉字、以及后边章节中没有特殊定义的标点符号
二、转义字符
\n、\t、\\、\^、\$、\. 、\( 、 \) 、 \{ 、 \} 、 \? 、 \+ 、 \* 、 \| 、\[、 \]
三、标准字符集合:能够与"多种字符"匹配的表达式
\d 匹配0-9的一个数字
\w 匹配一个"单词"(匹配一个字母、数字、下划线)
\s 匹配一个空格、制表符、换行符等空白字符的其中任意一个
. 匹配除了换行符(\n)以外 的任意一个字符
注意:在标准字符集合中,\大写字母(\D\W\S)表示取反
四、自定义字符集合:[ ]方括号匹配方式,匹配方括号中任意一个字符
1.方括号中写什么字符,就匹配与之对应的字符
2.如果数字太多、字母太多,我们可以写成"0-9","a-z"这样的形式
3.如果不想取某些内容,在[ ]中的第一个位置添加"^"
五、匹配次数
1.{n} 表达式重复n次
2.{m,n} 表达式最少出现m次,最多出现n次
3.{m,} 表达式最少出现m次
({,n}这是错误的正则表达式)
4. ? 表达式匹配0次或者匹配1次,相当于{0,1}
5. +表达式至少匹配一次,相当于{1,}
6. * 表达式出现若干次,相当于{0,}
注意:贪婪模式与非贪婪模式
匹配次数中的贪婪模式(匹配字符越多越好) -->默认情况
匹配次数中的非贪婪模式(匹配字符越少越好) -->在匹配次数的末尾添加一个"?"
六、单词边界(本组标记匹配的不是字符而是位置,符合某种条件的位置)
\b 匹配一个单词边界 (约等于\W)
^ 匹配后面一个字符必须作为开头
$ 匹配前面一个字符必须作为结尾
七、一些特殊概念
| 在正则表达式中表示"或"的概念
() 分组操作符,在正则表达式中表示将正则内容作为一个整体去进行操作
反向引用
每一对()会分配一个编号(组号),使用 () 的捕获根据左括号的顺序从 1 开始自动编号
通过反向引用,可以对分组已捕获的字符串进行引用。
八、匹配模式
单行模式:开启则" . "号会匹配所有字符,不开启则匹配除了换行符之外的所有字符
多行模式
忽略大小写模式:忽略大小写模式,在正则匹配时,忽略字母的大小写
全局模式:(js中)全局模式,在做正则替换的时,替换文本中所有匹配的结果
九、正则表达式在js中的使用:
1.创建正则表达式
①var re1 = new RegExp("正则表达式内容","匹配模式");
②var re2 = /正则表达式内容/匹配模式
2.正则匹配
var bool = 正则表达式对象.test("匹配的内容");