Когда вы добавляете аргумент perl = TRUE
к grepl()
, он дает тот же результат:
> grepl(str_c("\\b", "ALL-", "\\b"), "ALL-")
[1] TRUE
> grepl(str_c("\\b", "ALL-", "\\b"), "ALL-", perl = T)
[1] FALSE
Этот аргумент означает, что grepl()
будет использовать Perl-совместимое регулярное выражение.
В ?grep
есть это предупреждение, которое может быть связано?
Режим POSIX 1003.2 для gsub и gregexpr не работает правильно с повторяющимися границами слов (например, pattern = "\ b"). Используйте perl = TRUE для таких совпадений (но это может работать не так, как ожидается, для входных данных, отличных от ASCII, так как значение «word» зависит от системы).