Регулярное регулярное выражение R grep с скобками

У меня проблема с grep в R:

patterns= c("AB_(1)","AB_(2)")
text= c("AB_(1)","DDD","CC")

grep(patterns[1],text)
>integer(0)  ????

У команды grep возникает проблема с скобками "()", есть ли какой-либо as.XX(паттерны [1]), которые я могу использовать?

Ответы

Ответ 1

Вам нужно выполнить двойную обратную косую черту:

> patterns= c("AB_\\(1\\)","AB_(2)")
> text= c("AB_(1)","DDD","CC")
> 
> grep(patterns[1],text)
[1] 1

Ответ 2

Если в регулярном выражении нет специальных символов соответствия шаблону (как в примере, показанном в вопросе), используйте fixed=TRUE:

grep(patterns[1], text, fixed = TRUE)