【发布时间】: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传递给正则表达式引擎