Regex101链接: https://regex101.com/r/MsZy0A/2
我有以下正则表达式模式; .++b 具有以下试验数据; aaaaaaaacaeb .
.++b
aaaaaaaacaeb
我不懂的是“所有格量词”。我读到过,它不会像通常那样回溯。然而,我不认为它必须回溯?它只需匹配小于等于“b”的任何内容,“b”将匹配两次,如下所示: .+ 匹配所有内容(包括“b”),后面的“b”也将匹配“b”。
.+
有人能解释一下所有格量词在这方面的作用吗?
这个问题与前面提到的问题不同,我之所以问这个特殊的问题,是因为我在阅读了另一个答案后仍然没有得到答案。
++ 在一次和无限次之间进行匹配,尽可能多地进行匹配,而不进行回馈-如果您编写 .++ ,它匹配所有内容,包括决赛 b . 所以额外的 b 在你的正则表达式中永远不会匹配。
++
.++
b
如果你不使用所有格量词或只是删除 b 来自匹配类 [^b]++b -但我建议首先。所有格量词几乎每次都是不必要的。
[^b]++b