正则表达式的组成
1.字符
2.数量
3.边界词
4.修饰词
5.分组
数量词的使用
数量词用在字符的后面,用来定义这个字符的个数
[a]{n} 表示a出现n次
[a]{n,} 表示a至少出现n次
[a]{n,m} 表示a至少出现n次,最多出现m次
[a]? 表示a出现0次或1次
[a]* 表示a出现0次或者多次
[a]+ 表示a出现1次或多次
贪婪性数量词和懒惰性数量词
JavaScript中默认是贪婪性的数量
java中在数量词后用+表示贪婪性
{3,}? 数量是3次及以上,但尽可能少
{3,10}? 数量是3到10次,但尽可能少
?? 数量是0次或1次,但尽可能少
*? 数量是0次或多次,但尽可能少
+? 数量是1次或多次,但尽可能少
边界词的使用
^ 行开头
$ 行结尾
\b 单词边界
分组及分组的捕获
案例:ac abbbbc addddddc aeeeeeeeec a********c
通过正则表达式匹配以上的格式
使用()对正则表达式分组
整个表达式默认是一个分组,下标默认是0
每一个分组都有一个默认的下标
下标是从0开始的连续的整数
由于一般情况下,整个表达式分组的括号是不写的,所以一般我们看到的第一个括号就是第二组,下标为1
通过下标可以捕获分组
捕获方式: \下标
A(B(CD)) 下标是0
(B(CD)) 下标是1
(CD) 下标是2
((ab)(cd))
断言的使用
案例:
let msg = “帮小学生写作业,游戏练级,tel:13912345678,QQ:10001”;
从字符串中找到电话号码
(?<=exp)regex 匹配一个正则表达式,左边必须满足断言条件
regex(?=exp) 匹配一个正则表达式,右边必须满足断言条件
(?<!exp)regex 匹配一个正则表达式,左边必须不满足断言条件
regex(?!exp) 匹配一个正则表达式,右边必须不满足断言条件
4679

被折叠的 条评论
为什么被折叠?



