为了账号安全,请及时绑定邮箱和手机立即绑定

在正则表达式的上下文中,“懒惰”和“贪婪”是什么意思?

在正则表达式的上下文中,“懒惰”和“贪婪”是什么意思?

慕运维8079593 2019-05-24 14:59:04
在正则表达式的上下文中,“懒惰”和“贪婪”是什么意思?有人能以一种可以理解的方式解释这两个术语吗?
查看完整描述

4 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

贪婪'意味着匹配最长的字符串。

'懒惰'意味着匹配最短的字符串。

例如,贪婪的h.+l比赛'hell''hello',但懒惰的h.+?l比赛'hel'


查看完整回答
反对 回复 2019-05-24
?
噜噜哒

TA贡献1784条经验 获得超7个赞

+-------------------+-----------------+------------------------------+

| Greedy quantifier | Lazy quantifier |        Description           |

+-------------------+-----------------+------------------------------+

| *                 | *?              | Star Quantifier: 0 or more   |

| +                 | +?              | Plus Quantifier: 1 or more   |

| ?                 | ??              | Optional Quantifier: 0 or 1  |

| {n}               | {n}?            | Quantifier: exactly n        |

| {n,}              | {n,}?           | Quantifier: n or more        |

| {n,m}             | {n,m}?          | Quantifier: between n and m  |

+-------------------+-----------------+------------------------------+

加一个?一个量词使它不合适,即懒惰。

实施例:
测试字符串:计算器
贪婪reg表达式s.*o输出:stackoverflo瓦特
懒惰reg表达式s.*?o输出:stacko verflow

查看完整回答
反对 回复 2019-05-24
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

贪婪意味着你的表达式将尽可能地匹配一个组,懒惰意味着它将匹配可能的最小组。对于这个字符串:

abcdefghijklmc

这个表达式:

a.*c

贪婪的匹配将匹配整个字符串,而惰性匹配将匹配第一个abc


查看完整回答
反对 回复 2019-05-24
  • 4 回答
  • 0 关注
  • 923 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信