gsub(" BLAH",""," BLAH \ WHAT")不会让x有反斜杠?

时间:2014-10-06 21:12:34

标签: regex r

我正在做一些批量字符串清理,很多条目看起来像这样:

"ABC\Company Co."

这导致了奇怪的错误,我似乎无法删除反斜杠。

例如,尝试将其输入您的控制台:

gsub("BLAH", "", "BLAH\WHAT")

你得到:

Error: '\W' is an unrecognized escape in character string starting ""BLAH\W"

我知道它的想法\W是一个命令......我真的很惊讶gsub'解释' x,因为x只是我要提出的字符串。我不明白为什么gsub关心x中的实际内容,只是因为它应该用""替换"BLAH"。在"BLAH\WHAT" ...

之内

显而易见的解决方案是提前从字符串中删除\。

gsub("\\", "", "BLAH\WHAT")

但是你得到完全相同的错误信息!

思考?谢谢!

1 个答案:

答案 0 :(得分:2)

使用

gsub("\\\\", "", "BLAH\\WHAT")

给出了

[1] "BLAHWHAT"

要生成一个反斜杠,您需要使用\对其进行转义。因此,"\\\\"会生成两个反斜杠,它们匹配"BLAH\\WHAT"内的两个反斜杠。

请参阅以下相关问题:

How to escape a backslash in R?

How to escape backslashes in R string