正则表达式
正则表达式就是用来匹配字符串的,如你需要在一个文件中查找以“奥特曼”为开头的字符串,此时就需要正则表达式。
1.元字符
^:匹配字符串的开始,如^abc就是匹配以abc开头的字符串
2. 重复限定符
*:重复前面那个字符零次或多次,如^(ab)*:重复ab零次或多次
3.区间
1.限定0到9 可以写成[0-9]
2.限定A-Z 写成[A-Z]
如:
^((13[0-2])|(15[5-6])|(18[5-6])|145|176)\d{8}$于匹配联通的号码
4.贪婪与非贪婪(懒惰)
贪婪:尽可能多地匹配
1 文本:61762828 176 2991 87321
2 贪婪模式:(\d{1,2})(\d{3,4})
3 匹配结果:617628
4 匹配结果:2991
5 匹配结果:87321
解答:
1."617628"是前面的\d{1,2}匹配出了61,后面的匹配出了7628
2."2991" 是前面的\d{1,2}匹配出了29 ,后面的匹配出了91
3."87321"是前面的\d{1,2}匹配出了87,后面的匹配出了321
非贪婪:尽可能少地匹配,非贪婪量词是在贪婪量词后面加个“?”
1 文本:61762828 176 2991 87321
2 贪婪模式:(\d{1,2}?)(\d{3,4})
3 匹配结果:61762
4 匹配结果:2991
5 匹配结果:87321
解答:
1."61762" 是左边的懒惰匹配出6,右边的贪婪匹配出1762
2."2991" 是左边的懒惰匹配出2,右边的贪婪匹配出991
3."87321" 左边的懒惰匹配出8,右边的贪婪匹配出7321
* 和 *? 的区别:对于字符串aabab,a.*b得到aabab,a.*?b得到aab
5.其他
转义符:\
或:|,如 ^(130|131|132|155|156|185|186|145|176)\d{8}$用于匹配联通的号码
参考:链接
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?