如何用R中的反斜杠替换符号?

Kos*_*tya 4 regex r

你能帮我用R中的反斜杠替换一个字符吗?我的试用版:

gsub("D","\\","1D2")
Run Code Online (Sandbox Code Playgroud)

提前致谢

Ujj*_*wal 5

从键盘输入反斜杠时,总是将它们转义:

gsub("D","\\\\","1D2")
#[1] "1\\2"
Run Code Online (Sandbox Code Playgroud)

要么,

gsub("D","\\","1D2", fixed=TRUE)
#[1] "1\\2"
Run Code Online (Sandbox Code Playgroud)

要么,

library(stringr)
str_replace("1D2","D","\\\\")
#[1] "1\\2"
Run Code Online (Sandbox Code Playgroud)

注意:如果你想要像"1\2"输出那样的东西,恐怕你不能在R中做到这一点(至少在我的知识中).您可以在路径名中使用正斜杠来避免这种情况.

有关更多信息,请参阅R帮助中提出的此问题:如何在R中使用单反斜杠替换双反斜杠.


Kon*_*lph 5

您需要重新转义反斜杠,因为它需要作为普通R字符串的一部分进行转义(因此'\\'而不是'\'),此外,gsub在替换模式中以不同方式处理,因此需要再次转义.以下作品:

gsub('D', '\\\\', '1D2')
# "1\\2"
Run Code Online (Sandbox Code Playgroud)

结果看起来与所需输出不同的原因是R实际上不打印结果,它打印一个可解释的R字符串(注意周围的引号!).但如果你使用catmessage正确打印:

cat(gsub('D', '\\\\', '1D2'), '\n')
# 1\2
Run Code Online (Sandbox Code Playgroud)