为什么在使用“ \”替换时,函数“ gsub”对小写字母和大写字母的作用不同

时间:2019-07-11 06:36:59

标签: r regex

尽管使用函数“ gsub”从字符串中替换“ \ a”会为我提供预期的正确输出,但是以类似方式替换“ \ A”会给我错误消息。为什么会发生?

> asd = "\asd"
> gsub("\\a","",asd)
[1] "sd"
> gsub("\\A","","\Asd")
Error: '\A' is an unrecognized escape in character string starting ""\A"
> 

我希望输出为“ sd”

1 个答案:

答案 0 :(得分:1)

\是R和正则表达式中的转义字符。

> cat("\A")
Error: '\A' is an unrecognized escape in character string starting ""\A"

> cat("\\A")
\A

因此,您需要在字符串中转义\,然后在正则表达式中进行“双精度”转义。

> gsub("\\\\A","","\\Asd")
[1] "sd"

\a是一个特殊符号,因此它可以代替它。如果您在命令行中运行cat("\a"),则会像alarm()一样响铃。

这会引发相同的错误:

> gsub("\\c","","\csd")
Error: '\c' is an unrecognized escape in character string starting ""\c"

所以这不是大写字母

相关问题