正则表达式

正则表达式

限定符

限定符说明正则可匹配结果
匹配前面的子表达式零次或一次abc?ab、abc
*出现0次或多次的字符ab*cabc、abbbbc、ac
+出现1次以上的字符ab+cabc、abbbbc
可以匹配到出现1次以上的字符(ab)+cabc、abababc
{ }指定字符出现次数ab{5}cabbbbbc
指定字符出现至少多少次ab{2,}cabbc、abbbbbbbbc
指定字符出现次数区间ab{2,5}cabbc、abbbbbc

“或”运算符

运算符说明正则可匹配结果
Ia_cat I doga_cat、a_dog

字符类

字符说明正则可匹配结果
[ ]要求匹配的内容只能取自于[ ]中的字符[ abc ]+abc、acccc
[ ^ ]要求匹配的内容不能取自于[ ]中的字符[ ^a-zA-z1-9 ] +0

元字符

字符说明正则可匹配结果
\d数字字符,等同于[ 0- 9 ]\d+123、2333
\D非数字字符\D+wqer、_sys
\w单词字符,可以匹配所有的英文字符、数字及下划线\w+0,233x0,_d4s
\W非单词字符(包括空白符)\W++,-,* ,/
\s空白符,包含tab和换行符\s+
\S非空白符\S+a , c++ , /_#8
.句点,代表任意字符,但不包含换行符.*a , c++ , , /_#8
^匹配行首^y只会匹配行首的y
$匹配行首a$只会匹配行尾的a

贪婪与懒惰匹配

例如:

<span> <a> hello world </a> </span>

当我们只想去匹配标签的时候,

< .+ ? >加上个?,问号会将正则中默认的贪婪匹配切换为懒惰匹配,这样就不包含hello world了
< .+ >使用这个正则会匹配到所有的字符,因为局点会匹配尽可能多的字符

实例1

RGB 颜色值匹配

#[a-fA-F0-9]{6}\b

匹配第一个字符#,因为rgb为16进制的六位数,因此设置#[a-fA-F1-9],\b来代表单词字符的边界;

#FFDAB9		#FFD700		#FFD39B
#FFC1C1		#FFC125		#FFC0CB ......

实例2

IP地址匹配

\b((25[0-5]|2[0-4]?\d?|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]?\d?|[01]?\d\d?)\b
分析IP地址最大255.255.255.255,最小0.0.0.0
25[0-5]|2[0-4]?\d?|[01]?\d\d?
匹配ip的第一个断点可以是24开头三位数,或2开头小于50的三位数(200-249),或是0、1开头的一位数二位数三位数
((25[0-5]|2[0-4]?\d?|[01]?\d\d?)\.){3}
加上句点验证三次
\b((25[0-5]|2[0-4]?\d?|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]?\d?|[01]?\d\d?)\b
第四个句点重复之前规则,并加上边界符

原作者视频 https://www.bilibili.com/video/BV1da4y1p7iZ?from=search&seid=1073899913250552791
在这里插入图片描述

捕获,断言, 递归 ,平衡组

。。。。。。待继续学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值