正则表达式学习总结

博主分享正则表达式学习内容,介绍测试工具网站regex101。讲解常用限定符,如?、*、+等,还有元字符、贪婪与懒惰匹配等知识。并给出RGB颜色值和IPv4地址匹配实例,最后提供学习进阶博客和视频链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近闲来无聊看着视频大概学习了下正则表达式相关的一些内容,以前都是直接百度,现在还是觉得这个还是挺有用的,所以总结分享一下。
测试工具网站: regex101: build, test, and debug regex 很棒很棒的网站,可以测试你的表达式语句是分正确,效果是否能实现,还会有分析,以及各种规则介绍,还可以生成代码,真的是很棒的!!!
常用限定符
>>    ?
该限定符表示它前面的字符需要出现0次或者1次。
事例如下:
>>    *
该限定符表示它前面的字符需要出现0次或者多次。
>>    +
该限定符表示匹配出现一次以上的字符
>>    {}
该限定符表示指定字符出现的次数
x表示具体次数
首先是精确指定出现次数    {x}
如下事例所示分别表示指定出现3次和指定出现4次
也可以进行区间指定    {x,y}
如下事例所示分别表示指定字符出现1-4次和1-6次和2-6次
指定出现字符在x次以上 {x,}
如下事例所示分别表示指定字符出现1次和3次以上
上述四种为单字符匹配限定符。

>>    ()
如想要匹配多个字符可以将想要匹配的字符用()括起来。
>>    或运算符    |
如下事例所示,匹配 a car或者a dog,
注意必须要有括号,否则就成了a car或者dog
 >>     [ ] 字符类
方括号中填入匹配由哪些字符构成的单词 ,即要求匹配的字符只能取自于方括号中的内容 
可以和其他限定符组合,如下所示分别是方括号中的字符在单词中出现几个及以上的
也可以在方括号中指定字符的范围,如:
[a-z]+    代表所有的小写英文字符
[A-Z]+    代表所有的大写英文字符
[0-9]+    代表所有的数字
也可以组合,代表所有的字母与数字
>>    ^    脱字符
匹配除方括号中^后面列出字符以外的字符,比如:
列出 所有非数字字符,包括换行符

元字符
\d    \w    \s    \D    \W    \S
\d    数字字符
\w    单词字符(英文、数字及下划线)
\s    空白符(包含Tab制表符和换行符 ) 
\D    非数字字符
\W    非单词字符
\S     非空白字符
.    句点代表任意字符但不包括换行符
^    匹配行首
$    匹配行尾

贪婪与懒惰匹配 
如下图所示,本意是想去匹配句中的html标签,但是使用<.+>却将所有字符全都匹配了,原因是.+会匹配尽可能多的字符    .代表任意字符自然也会匹配> ,因此才会有这样的结果。
加一个?会实现我们想要的效果,它会将正则表达式中默认的贪婪匹配切换为懒惰匹配
再举一个例子
下例所说匹配l字符1到3个
当我们加上?后则只匹配1个
\b    单词字符的边界
下面的示例以及实例1中可以体会出其效果

实例1    RGB颜色职匹配
实例2    IPv4地址匹配
(IPv4地址由四段数字构成,数字之间由句点隔开)
 
\d+会赔配任何长度大于1的数字,\.    代表    .    这个字面量,因为.是元字符是一个特殊符号,所以需要用反斜杠做转义。
我们知道IP地址的每个部分都是8位数字,也就是说范围介于0-255之间 ,所以需要进行如下优化:
(25[0-5]|2[0-4]\d|[0-1]?\d\d?)\.
25[0-5]表示250-255的情况
2[0-4]\d表示200-249的情况
[0-1]\d\d表示000到199的情况,因为可能是一位数或者两位说,所以[0-1]?\d\d?
(25[0-5]|2[0-4]\d|[0-1]?\d\d?)\.最后加\.匹配.特殊符号
((25[0-5]|2[0-4]\d|[0-1]?\d\d?)\.){3}表示连续匹配三次
((25[0-5]|2[0-4]\d|[0-1]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[0-1]?\d\d?)接下来家方括号里的内容再匹配一次这次没有.这个符号
\b((25[0-5]|2[0-4]\d|[0-1]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[0-1]?\d\d?)\b最后前后加上边界符
总结如下:
【10分钟快速掌握正则表达式】 10分钟快速掌握正则表达式_哔哩哔哩_bilibili
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值