gpt4 book ai didi

regex - `*+` 和 `*` 的所有格和贪婪量词给出不同结果的情况?

转载 作者:行者123 更新时间:2023-12-01 08:58:32 26 4
gpt4 key购买 nike

我在看这个问题Greedy vs. Reluctant vs. Possessive Quantifiers

我可以看到 *+* 都匹配零次或多次,但是所有格量词 *+ 将尽可能多地匹配前向尽可能.. 而 * 将执行 .* 和回溯。我可以接受当 .* 字符串很长时 *+ 会更有效率。

不过,我对他们给出不同结果的时间很感兴趣。

然后我看到了一条评论

@moodboom, there are zero cases ever (mathematical fact) where possessive quantifiers will produce a match that will not be produced by simple greedy quantifiers. There are occasional cases where they will produce a no match when greedy quantifiers would produce a match. For ALL other cases (where greedy and possessive produce the same results), possessive quantifiers give a performance gain. – Wildcard May 5 at 23:00

我非常有兴趣看到这一点的扩展,具体情况下所有格和贪婪量词会给出不同的结果。

对比 *+*

我也对可能的不同结果感兴趣,对比 ?+?

最佳答案

我找到了一个案例,但我不确定解释和针对性。我认为还有很多其他情况。

测试用例

greedy = /.*b/
posssessive = /.*+b/

测试于:

foob

只有贪婪匹配它。

说明

所有格将首先匹配整个字符串 (.*+) 然后尝试匹配b 字符但只找到字符串的结尾 ( $).

Greedy 也将匹配整个字符串,然后向后查找直到找到第一个 b 字符。它会找到的。

关于regex - `*+` 和 `*` 的所有格和贪婪量词给出不同结果的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45487542/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com