文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
7.4 懒惰量词
现在让我们把贪心特性放到一边而来看看懒惰量词。理解懒惰特性最好的方式就是看看实际应用。请在Reggy(确定Match All没有被勾选)中尝试用问号(?)匹配零个或者一个5:
5?
第一个5被标亮了。请再加一个?来使量词变为懒惰的:
5??
现在它看起来不匹配任何内容了,其原因是该模式已经是懒惰的了。也就是说,它不会强制匹配第一个5。懒惰的基本特性就是匹配尽可能少的字符——它就是个“懒虫”。
试一下匹配零次或多次的量词:
5*?
它也不会匹配任何内容,因为它可以选择匹配最少的次数——零次。
再试一下匹配一次或多次:
5+?
看到了吧,懒惰特性使其只匹配了一个5。它只需要做到这个程度就可以了。
使用m和n方式匹配时就更为有趣了。请尝试:
5{2,5}?
只匹配了两个5,而不像贪心量词那样匹配五个。
表7-3列出了懒惰量词。什么时候懒惰式匹配最实用?如果你想匹配最少而不是最多数目的字符,就可以使用懒惰量词。
表7-3 懒惰量词
语法 | 描述 |
?? | 懒惰匹配零次或一次(可选) |
+? | 懒惰匹配一次或多次 |
*? | 懒惰匹配零次或多次 |
{n }? | 懒惰匹配n 次 |
{n ,}? | 懒惰匹配n 次或多次 |
{m,n }? | 懒惰匹配m至n 次 |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论