R用gsub()代替'代替\'

时间:2018-07-11 05:19:43

标签: r gsub

我想让像“ ab'”这样的字符串变成“ ab \'”

我尝试了以下代码

aa="ab'"
aa<-gsub("'","\\'",aa)    

显示ab'

aa="ab'"
aa<-gsub("'","\\\'",aa)

显示ab'

aa="ab'"
aa<-gsub("'","\\\\'",aa)

显示ab \\'

我不知道如何解决它 请给我一些建议

2 个答案:

答案 0 :(得分:0)

对于以下代码:

aa <- "ab'"
aa <- gsub("'", "\\\\'", aa)

实际上,您是用单个文字反斜杠替换单个引号。您会看到ab\\'的输出,我相信只是显示了一个额外的反斜杠,让您知道它不是转义字符。

请考虑以下代码扩展:

gsub("\\\\", "A", gsub("'","\\\\'",aa))
[1] "abA'"

我们可以清楚地看到替换中只有一个A,这意味着只有一个反斜杠要替换。

答案 1 :(得分:0)

即使在终端上,有时您也会看到“ \\”它实际上只是“ \”。

使用writeLines()打印结果以查看实际的字符串:

> original_string = "ab'"
> new_string = gsub("'","\\\\",original_string)
> writeLines(new_string)
ab\

有趣的奖励:https://xkcd.com/1638/