返回介绍

7.4 懒惰量词

发布于 2024-01-20 21:40:46 字数 1093 浏览 0 评论 0 收藏 0

现在让我们把贪心特性放到一边而来看看懒惰量词。理解懒惰特性最好的方式就是看看实际应用。请在Reggy(确定Match All没有被勾选)中尝试用问号(?)匹配零个或者一个5:

5?

第一个5被标亮了。请再加一个?来使量词变为懒惰的:

5??

现在它看起来不匹配任何内容了,其原因是该模式已经是懒惰的了。也就是说,它不会强制匹配第一个5。懒惰的基本特性就是匹配尽可能少的字符——它就是个“懒虫”。

试一下匹配零次或多次的量词:

5*?

它也不会匹配任何内容,因为它可以选择匹配最少的次数——零次。

再试一下匹配一次或多次:

5+?

看到了吧,懒惰特性使其只匹配了一个5。它只需要做到这个程度就可以了。

使用mn方式匹配时就更为有趣了。请尝试:

5{2,5}?

只匹配了两个5,而不像贪心量词那样匹配五个。

表7-3列出了懒惰量词。什么时候懒惰式匹配最实用?如果你想匹配最少而不是最多数目的字符,就可以使用懒惰量词。

表7-3 懒惰量词

语法

描述

??

懒惰匹配零次或一次(可选)

+?

懒惰匹配一次或多次

*?

懒惰匹配零次或多次

{n }?

懒惰匹配n

{n ,}?

懒惰匹配n 次或多次

{m,n }?

懒惰匹配mn

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文