最近正则表达式用得很频繁,上网查有些又查不到,干脆学了自己写。
作为哔哩哔哩大学在读生,在哔哩哔哩选课系统上选了一个不错的视频,艾玛真香,特此记录。
内容来源:
哔哩哔哩
入门
补充:
{}里面存放重复次数,可以写成重复区间{ ,}
{0,}等价于*
{1,}等价于+
举例:\d{3,4}表示数字可以出现3次或4次,一般是贪婪模式即有4次选4次,如果某些情况想要选出现3次,可以写成\d{3,4}?改为非贪婪模式。
进阶
分组
()是分组,可以提取出()内的内容
使用分组的同时还可以使用 或者(or)条件。
|就是“或者条件”
使用非捕获组(?:表达式),从而不捕获数据,还能使用分组的功能。
分组回溯引用:使用之前使用过的分组。
断言
先行断言和后行断言总共有四种:
1.正向先行断言
(?=表达式),指在某个位置向右看,表示所在位置右侧必须能匹配表达式
2.反向先行断言
(?!表达式)的作用是保证右边不能出现某字符。
3.正向后行断言
先行断言和后行断言只有一个区别,即先行断言从左往右看,后行断言从右往左看。
(?<=表达式),指在某个位置向左看,表示所在位置左侧必须能匹配表达式
4.反向后行断言
(?<!表达式),指在某个位置向左看,表示所在位置左侧不能匹配表达式