的懒惰大家都知道,正则表达式引擎使用两个规则当它有关的工作:正则表达式引擎的规则。贪婪,渴望和正则表达式
- 规则1:开头最早的胜利或正则表达式 都渴望比赛。
- 规则2:正则表达式是贪婪的。
这些线出现在教程:
两个这些规则齐头并进。
它急于给你一个结果,所以它只是试图让 不断让第一个人做所有的工作。
虽然我们已经在它的中间,让我们继续前进,到达 结尾的字符串,然后当它不工作,然后它会 回溯并尝试另一个。
它不会回溯到开始;它不尝试其他组合的各种 。
它仍然渴望得到你的结果,所以它说,如果我只给了 回来一个?
请问我能给出一个结果吗?
如果确实如此,那就很好了。它能够在那里完成。
它不需要在字符串中进一步追踪回溯,看起来 为某种更好的匹配或匹配的更进一步。
我不太明白这些行(特别是第二(“虽然我们是......”)和最后一个(“它不具备继续回溯”)的句子)。
而这些行关于懒惰模式。
它仍然推迟到整个比赛就像贪婪的人做
- 清楚。
我不明白,以下类推:
这不一定是任何更快或更慢,选择一个懒惰的策略或 贪婪的策略,但它可能会搭配不同的东西。
现在只要是快或慢,就好像是说,如果 你失去了你的车钥匙和你的房子里你的太阳镜,是它 更好地开始寻找在厨房或开始寻找一点点在 客厅?
你不知道哪一个会产生最好的效果,而且你不知道哪个人先找到太阳镜或者首先找到钥匙 ;这只是关于开始搜索的不同策略。
所以你可能会得到不同的结果,具体取决于你从哪里开始, ,但在一个地方或其他地方开始并不一定更快。
“更快或更慢”是什么意思?
我要画出它的工作原理(在这两种情况下都是)。所以我会考虑这个问题,直到我发现这里发生了什么事情!) 我需要准确无误地理解它。
谢谢。
http://stackoverflow.com/questions/2301285/what-do-lazy-and-greedy-mean-in-the-context-of-regular-expressions – 2014-10-03 14:51:21
*更快*和*更慢*这里指的是性能,找到匹配的速度或失败的速度。从你发布的教程中,你正在阅读的教程看起来不太好。我建议你看看更好的东西。 – Qtax 2014-10-03 15:28:05