R Регулярное выражение с использованием "+" "?" или "*" - PullRequest
1 голос
/ 12 февраля 2020

С https://stringr.tidyverse.org/articles/regular-expressions.html

Описывает контроль того, сколько раз шаблон отображается с использованием:

  • ?: 0 или 1.
  • +: 1 или более.
  • *: 0 или более.

Так что это хорошо работает:

str_view("hello123world", "123?")

Но почему бы не это?

str_view("cycyccyccccc", "ccc?")

Выше выделены cc в начале строки.

Я ожидал, что он выделит три c в последних строках c в конце.

1 Ответ

7 голосов
/ 12 февраля 2020

Регулярное выражение, которое вы передали "ccc?", означает (словами) "c, за которым следует c, за которым следует ноль или один c 's", поэтому str_view дает вам первый экземпляр двух c' s подряд (потому что это c, за которым следует c с последующим нулем c).

Если вы хотите ровно 3 c, вы можете использовать

str_view("cycyccyccccc", "ccc")

Или, если вы хотите 3 или более c, вы можете использовать

str_view("cycyccyccccc", "c{3,}")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...