正则表达式笔记

这个只是简单的运用,更为复杂的使用需要在实际运用中琢磨。。。。。
参考链接

元符号

“\b”:用于标识开头或者结尾
“^”:用于标识一个匹配字符的开始
“$”:用于标识一个匹配字符的结束
“.”:用于标识除换行之外的任意字符
“\s”:用于标识一个空字符
“\w”:用于标识一个数字、字母、汉字、下划线
“\d”:用于标识一位数字

反向标识

大写的符号将会用于判断为“非。。。”的存在。
“\S”:标识一个非空字符的位置
“\W”:标识一个非数字、字母、汉字、下划线的字符
“\D”:标识一个非数字的占位
也可以通过“^”+“[]”符号进行非判断:
“[^abcd]”:除abcd以外的字符

数量标识

“*”:用于标识数量,任意次数(0-任意多次)
“+”:用于标识数量,任意次数(1-任意多次)
“?”:标识数量 0 或 1 次
“{n}”:重复n次
“{n,}”:重复 n-任意多次
“{n,m}”:重复 n-m 次

其他字符

“\”:转义字符
“[]”:字符集,处于这个区域的字符将被单个进行匹配,也可以设置通用字符集[a-zA-Z0-9]等
“|”:标识一个分歧条件,可以多个串联,但是严格执行从左至右的顺序

向后引用

“()”:分组标识,向后引用
这个标识将会定义一个分组,如果没有指定分组标识,将会自动以数字进行标识,0是代表整个表达式,1开始是从左至右依次未命名小组的默认命名。
指定小组名称:(?‘name’)或者 (?<name>)先指定有名字的,后指定没名字的,所以数字永远大于姓名。
使用小组:通过“\k<name>” 进行指定,可以理解为将小组中的指令重新执行一遍,但实际上则是,小组在执行的过程中将结果进行了抓取,后面只不过是调用它的抓取结果。

零宽断言

“(?=exp)”:零宽断言
这个断言就是一个是不是的判断语句,是就返回,不是就不返回。
后面的exp是要判断的标准,“=”:找到目标位置,就取前面的;“<=”:找到目标位置,取后面的。
需要注意的是:都是不包含exp本身的。

负向零宽断言

“(?=!exp)”
和零宽断言的区别就是exp本身是不消耗占位的,也就是判断它不会跳过任何位置,它的作用就是用来判断的,零宽断言是对下一个目标进行判断,如果是正确的话,就会消耗一个占位,这样的话后续的判断就会顺移一位。而负向断言就不会出现这样的问题。

注释

(?#comment):comment为注释内容
具体的使用参照参考文章

贪婪和懒惰

默认情况下,匹配的原则是贪婪模式,它会尽可能的多匹配内容。如果想要匹配尽可能少的内容需要手动配置懒惰模式:在匹配条件后添加“?”
.*? 将会匹配最少的次数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值