R中是否可以转义“[”

kpi*_*pie 3 r escaping

 a = list("a","b","cdef", "[")
 grep("a",a)
 #[1] 1
 grep("[",a)
 #Error during wrapup: invalid regular expression '[', reason 'Missing ']''
 grep('\[',a)
 #Error during wrapup: '\[' is an unrecognized escape in character string starting "'\["
 grep("\[",a)
 #Error during wrapup: '\[' is an unrecognized escape in character string starting ""\["
 grep("\133",a)
 #Error during wrapup: invalid regular expression '[', reason 'Missing ']''
Run Code Online (Sandbox Code Playgroud)

我想根据这里找到的信息执行“\133”:http://cran.r-project.org/doc/manuals/R-lang.html#Literal-constants不幸的是它不起作用。

MrF*_*ick 5

默认情况下grep()使用正则表达式并且[是正则表达式中的特殊字符,您可以使用以下命令禁用正则表达式

grep("[", a, fixed=TRUE)
Run Code Online (Sandbox Code Playgroud)

[或通过做事来逃避

grep("\\[", a)
Run Code Online (Sandbox Code Playgroud)

请注意此处的双斜杠,因为正确的正则表达式语法是\[,但您还需要对 R 字符串中的斜杠进行转义,因为您需要文字斜杠而不是转义代码,因此它变为\\[