代码之家  ›  专栏  ›  技术社区  ›  kpie

是否可以在R[重复]中转义“[”

  •  3
  • kpie  · 技术社区  · 11 年前
     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 ']''
    

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

    1 回复  |  直到 11 年前
        1
  •  5
  •   MrFlick    11 年前

    默认情况下 grep() 使用正则表达式和 [ 是正则表达式中的特殊字符,可以使用

    grep("[", a, fixed=TRUE)
    

    或逃离 [ 通过做

    grep("\\[", a)
    

    注意这里的双斜杠,因为正确的正则表达式语法是 \[ 但是您还需要对R字符串中的斜杠进行转义,因为您需要一个字面斜杠而不是转义代码 \\[