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

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

有人能以一种可以理解的方式解释这两个术语吗?



慕运维8079593
浏览 929回答 4
4回答

慕尼黑5688855

贪婪'意味着匹配最长的字符串。'懒惰'意味着匹配最短的字符串。例如,贪婪的h.+l比赛'hell'中'hello',但懒惰的h.+?l比赛'hel'。

噜噜哒

+-------------------+-----------------+------------------------------+| 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

小怪兽爱吃肉

贪婪意味着你的表达式将尽可能地匹配一个组,懒惰意味着它将匹配可能的最小组。对于这个字符串:abcdefghijklmc这个表达式:a.*c贪婪的匹配将匹配整个字符串,而惰性匹配将匹配第一个abc。
打开App,查看更多内容
随时随地看视频慕课网APP