行为与{,2}
不是预期的,这是一个错误。如果你看一下 TRE 源代码,tre_parse_bound method https://github.com/laurikari/tre/blob/556ef09df29aadc041923522d07cc012d92a4749/lib/tre-parse.c#L597,你会看到min
变量值设置为-1
在引擎尝试初始化最小边界之前。量词中缺少最小值时的“重复”次数似乎是最大值的次数 +1
(就好像重复次数等于max - min = max - (-1) = max+1
).
So, a{,}
匹配 1 次出现a
。与...一样a{, }
or a{ , }
. See R demo https://ideone.com/RvD7ip, only abc
与ab{,}c
:
grepl("ab{,}c", c("ac", "abc", "abbc", "abbbc", "abbbbc"))
grepl("ab{, }c", c("ac", "abc", "abbc", "abbbc", "abbbbc"))
grepl("ab{ , }c", c("ac", "abc", "abbc", "abbbc", "abbbbc"))
## => [1] FALSE TRUE FALSE FALSE FALSE