1.正则表达式的组成
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。正则表达式是由字符、数量、边界词、修饰词、分组等几个部分组成,但是每一个部分不是必须的,可以只由其中一个部分组成。
2.数量词的使用
2.1普通数量词
数量词表示的是该类型字符出现的次数。共有如下几种类型:
[a]{n} //表示a出现n次
[a]{n,} //表示a至少出现n次
[a]{n,m} //表示a至少出现n次,最多出现m次
[a]? //表示a出现0次或1次
[a]* //表示a出现0次或者多次
[a]+ //表示a出现1次或多次
2.2贪婪性数量词
贪婪性数量词:只会匹配尽可能多的数量的数量词,在JS中默认情况就是贪婪性的数量词。
2.3懒惰性数量词
懒惰性数量词:只会匹配尽可能少的数量的数量词
{3,}? //数量是3次及以上,但尽可能少
{3,10}? //数量是3到10次,但尽可能少
?? //数量是0次或1次,但尽可能少
*? //数量是0次或多次,但尽可能少
+? //数量是1次或多次,但尽可能少
3.边界词的使用
边界词共有三种,分别是行开头、行结尾以及单词边界。行开头表示的是一个字符串最开始的字符,行结尾表示一个字符串最后面的字符,单词边界表示的是以单词单位的分隔符。
^ //行开头
$ //行结尾
\b //单词边界
4.分组以及分组的捕获
在JS中如果想要对正则表达式进行分组,可以使用小括号,并且分组之后每一个都会有一个从0开始的索引值,如果需要对分组进行捕获,可以使用如下语法格式来进行捕获:
\索引值 //对对应索引值的分组进行捕获
5、断言的使用
断言的使用情况一般是需要根据条件只找出对应的内容而不找出内容的描述。
(?<=exp)regex //匹配一个正则表达式,左边必须满足断言条件
regex(?=exp) //匹配一个正则表达式,右边必须满足断言条件
(?<!exp)regex //匹配一个正则表达式,左边必须不满足断言条件
regex(?!exp) //匹配一个正则表达式,右边必须不满足断言条件