正则表达式

正则表达式就是用来匹配字符串的,如你需要在一个文件中查找以“奥特曼”为开头的字符串,此时就需要正则表达式。

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}$用于匹配联通的号码

参考:链接

posted @ 2022-07-26 19:51  好人~  阅读(15)  评论(0编辑  收藏  举报