2

最近,在网上的某个地方*,我找到了一个正则表达式的参考,它描述了贪婪的“第三种方式”,与贪婪匹配(.*)和惰性(.*?)匹配都不同。

我现在尝试搜索 SO、谷歌搜索,甚至搜索我的浏览器历史记录,但无济于事。

谁能猜出我看到了什么?


澄清:它指的是对我来说是一个新构造(类似于.*+),我相信它甚至有一个名称(类似于,但可能不是,“被动贪婪”)。


*我很欣赏“网络上的某个地方”与“在巴别图书馆中”或“在曼德布罗集合中”一样有用,但请尝试提供帮助

4

6 回答 6

5

我认为您指的是“姿势”匹配。Java 在此页面上对其进行了描述:http: //java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html

占有量词,贪婪地尽可能多地匹配并且不会后退,即使这样做也会使整体匹配成功。

语法与您描述的相同 (.*+) 。

于 2009-02-19T20:10:32.290 回答
4

这也许?http://www.regular-expressions.info/repeat.html

An Alternative to Laziness

In this case, there is a better option than making the plus lazy. We can use a greedy plus and a negated character class: <[^>]+>.

于 2009-02-19T19:54:13.893 回答
2

有各种不同的正则表达式包。在 Perl、Java、PHP 和可能的其他语言中(或多或少)使用 PCRE(Perl 兼容的正则表达式)。PCRE 手册页可能被视为权威参考。它描述了所有格量词(例如 *+ 和 ++),它们是原子团的简写。

于 2009-02-19T20:32:00.157 回答
1

好吧,不完全是参考,但仍然很好。 掌握正则表达式

还有一本来自 O'Reilly 的“参考”书,但我无法就此作证。刚刚第一次看到。

于 2009-02-19T19:51:30.450 回答
0

我总是在我的多维数据集中保留一份这份正则表达式备忘单的副本。

于 2009-02-19T20:12:47.887 回答
0

谢谢你们。恢复记忆的关键是“占有欲”,而不是“被动”。

以下是一些有用的参考资料:

于 2009-02-19T20:54:41.170 回答