Есть совпадение для str_view(x, "C?")
, но оно имеет длину 0. Полезно проанализировать это поведение с помощью функции базового R regexpr
.
regexpr("C?", x)
# [1] 1
# attr(,"match.length")
# [1] 0
# attr(,"useBytes")
# [1] TRUE
Это говорит о том, что совпадение начинается в позиции1 и имеет длину 0. Поскольку C?
означает C
один раз или ноль раз, он соответствует пустой строке в начале x
.
regexpr("CC?", x)
# [1] 47
# attr(,"match.length")
# [1] 2
# attr(,"useBytes")
# [1] TRUE
В отличие от этого, регулярное выражение CC?
соответствует строке, начинающейся в позиции 47 с длиной 2. Поскольку необходим первый C
, он не может соответствовать пустой строке.Поскольку ?
является жадным, CC?
соответствует как первому, так и второму C
из x
.