【问题标题】:"'\w' is an unrecognized escape" in grepgrep 中的“'\w' 是无法识别的转义”
【发布时间】:2015-02-16 04:16:11
【问题描述】:

我在 R 的一些项目中使用 grep(它使用 perl=TRUE 标志),而对于我的生活,我无法弄清楚为什么 R 不断抛出错误。我的查询如下:

d$SomeColumn[grep("(?ix)<VNW[^;]*;(dis|dat)> \w*<N\(", d$Right, perl=TRUE)] <- 1

但是,R 会抛出以下错误:

Error: '\w' is an unrecognized escape in character string starting ""<VNW[^;]*;(dis|dat)> \w"

【问题讨论】:

  • @anubhava 不,但为什么有必要这样做?不是逃出来了吗?
  • 这是因为正则表达式被输入为双引号中的字符串。字符串需要一个转义,而正则表达式引擎需要另一个转义。例如\\w 作为\w 传递给正则表达式引擎

标签: r regex pcre


【解决方案1】:

您需要在 r 中再转义一次反斜杠。

d$SomeColumn[grep("(?ix)<VNW[^;]*;(dis|dat)> \\w*<N\\(", d$Right, perl=TRUE)] <- 1

                                              |     |

【讨论】:

    猜你喜欢
    • 2014-10-16
    • 1970-01-01
    • 2021-04-18
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多