用 1 个打印对替换或删除多个反斜杠

Replace or remove multiple backslashes with 1 printed pair

如何用一个反斜杠替换多个反斜杠?我知道在一个字符串中,单个反斜杠用 \ 表示,如下所示:

nchar('\')
[1] 1

所以我想替换此字符串中的所有反斜杠:'thre\\fd' 为一个(打印为两个),当用 cat 包裹时将生成:thre\fd。我认为 stringi 包有一种方法可以轻松做到这一点,但无法弄清楚如何。

MWE(输出不正确)

cat(gsub('\\', '\', 'thre\\fd'))
## threfd

期望的 Catted 输出

thre\fd

如果所有字符串都有相同数量的斜杠,这是一个非常简单的 gsub:

x <- "test\\123"
gsub("\\","\",x)
output: "test3"

使用fixed = TRUE参数,我们得到

cat(gsub('\\', '\', 'thre\\fd', fixed = TRUE), '\n')
#thre\fd 

cat(gsub('\\\', '\\', 'thre\\\fd', fixed = TRUE), '\n')
#thre\fd