四、贪婪模式与非贪婪模式
1.贪婪模式:正则表达式匹配时,会尽量多的匹配符合条件的内容
举例如下:
注意:grep默认采用贪婪匹配,可能会对我们的测试结果造成干扰,大家可以上网使用“正则在线转换工具”进行测试
2.非贪婪模式:正则表达式匹配时,会尽量少的匹配符合条件的内容,也就是说,一旦发现匹配符合要求,立马就匹配成功,而不会继续匹配下去(除非有g,开启下一组匹配)
举例如下:
五、零宽断言
1.所谓断言,是用来声明一个应该为真的事实。在正则表达式中,只有当断言为真时才会继续进行匹配。
2.零宽断言:像用于查找某些内容之前或者之后的东西,其中一些特殊字符如“\b、^、$”等用于指定一个位置,这个位置应满足一定的条件。
3.分类:
(1)零宽度正预测先行断言(?=exp)
它断言自身出现的位置之后能匹配的表达式exp。如:\b\w+(?=ing\b),表示匹配以ing结尾的单词的前面的部分(除ing以外的部分)。当我们要查找“I’m singing while you’re dancing.”时,它会匹配sing和danc
举例如下:
(2)零宽度正回顾后发断言(?>=exp)
它断言自身出现的位置的前面能匹配的表达式exp。如:(?<=\bre)\w+\b会匹配以re开头的单词的后半部分(除er以外的部分),例如:在查找“reading a book”时,它匹配ading
举例如下:
六、简单练习
1.手机号码
2.非零的正整数
3.非零开头的最多带两位小数的数字
4.由数字和26位字母组成的字符串
5.QQ号,从10000开始
6.IP地址
\d+\.\d+\.\d+\.\d+
7.判断账号是否合法
^[a-zA-Z0-9][a-zA-Z0-9_]{4,15}$
8.日期格式
^\d{4}-\d{1,2}-\d{1,2}
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/70687.html