我无法在R中转义反斜杠

3

我似乎无法从字符串中去除反斜杠(\)。阅读了大量关于这个问题的不同答案,但是没有一个对我有效。请考虑以下示例(下面的尝试来自stackoverflow类似问题的各种答案):

temp = "35:12:34\"}}}\"}"
gsub("\\","",temp)

在执行 gsub("\", "", temp) 时出现错误:无效的正则表达式 '\', 原因是 'Trailing backslash'

gsub("\\","",temp,fixed=T)

[1] "35:12:34\"}}}\"}" 的意思是一个字符串,其中包含了时间信息,格式为时:分:秒。
gsub("\\\\","",temp,fixed=T)

[1] "35:12:34\"}}}\"}"

gsub("([\\])","",temp)

[1] "35:12:34\"}}}\"}" 的意思是一个包含字符串和嵌套 JSON 对象的 JSON 字符串。
gsub("([\\])","",temp,fixed=T)

[1] "35:12:34\"}}}\"}"

希望能帮忙去掉这个反斜杠。


8
没实际存在。检查 cat(temp)。在 ?Quotes 中有解释。 - Rich Scriven
执行 cat(temp) 命令以查看您的字符串实际包含了什么。 - Hong Ooi
请查看 https://dev59.com/x18e5IYBdhLWcg3wucb-#25466734。 - Tyler Rinker
反斜杠显示在字符串中的"字符是转义的(而不是字符串的结尾),但实际上并不是字符串本身的字符。 - alistaire
1个回答

2
请使用以下内容
cat(gsub("\\\"","",temp))

它将输出所需的结果。如果您希望将其存储为一个对象,请使用:
text <- capture.output(cat(gsub("\\\"","",temp)))

但是在打印文本时,引号会再次被转义。但是您可以通过nchar(text)验证字符数。

> text <- capture.output(cat(gsub("\\\"","\"",temp)))
> text
[1] "35:12:34\"}}}\"}"
> cat(text)
35:12:34"}}}"}
> nchar(text)
[1] 14

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接