你能帮我用R中的反斜杠替换char吗?我的试用版:
gsub("D","\\","1D2")
提前致谢
答案 0 :(得分:5)
从键盘输入反斜杠时,请务必将其转义:
gsub("D","\\\\","1D2")
#[1] "1\\2"
,或者
gsub("D","\\","1D2", fixed=TRUE)
#[1] "1\\2"
,或者
library(stringr)
str_replace("1D2","D","\\\\")
#[1] "1\\2"
注意:如果你想要"1\2"
之类的东西作为输出,恐怕你不能在R中做到这一点(至少在我的知识中)。您可以在路径名中使用正斜杠来避免这种情况。
有关详细信息,请参阅R帮助中提出的此问题:How to replace double backslash with single backslash in R。
答案 1 :(得分:5)
你需要重新转义反斜杠,因为它需要作为普通R字符串的一部分进行转义(因此'\\'
而不是'\'
),而另外 gsub
在替换模式中处理的方式不同,因此需要再次进行转义。以下作品:
gsub('D', '\\\\', '1D2')
# "1\\2"
结果看起来与所需输出不同的原因是R实际上不打印结果,它打印一个可解释的R字符串(注意周围的引号!)。但是,如果您使用cat
或message
,则会正确打印:
cat(gsub('D', '\\\\', '1D2'), '\n')
# 1\2
答案 2 :(得分:0)
gsub("\\p{S}", "\\\\", text, perl=TRUE);
\ p {S} ...匹配Unicode类别符号中的字符。