【发布时间】:2018-06-02 18:24:23
【问题描述】:
Regex101 链接:https://regex101.com/r/MsZy0A/2
我有以下正则表达式模式; .++b 有以下测试数据; aaaaaaaacaeb.
我不明白的是“占有量词”。我读过它不会回溯,它通常会这样做。但是,我不认为它必须回溯吗?它只需要匹配直到并包括“b”的任何内容,“b”将匹配两次,因为.+匹配所有内容(包括“b”),并且后面的“b”也将匹配“b”。
有人能解释一下所有格量词在其中的作用吗?
这个问题不是上面提到的那个问题的重复,我问的是这个特殊情况,因为我在阅读了另一个答案后仍然没有得到它。
【问题讨论】:
-
我从未见过这样的模式,但
(.+)+b工作得很好。.+b也是如此。 -
你为什么要+?第二个 + 应该做什么?
-
由于所有格量词不回溯
.++匹配所有内容,包括最后一个b因此最后一个b永远不匹配 -
@anubhava 谢谢!这是有道理的??????️
-
@Galen 不是骗子,我问的是这个特殊情况 =)
标签: php regex match backtracking quantifiers