用 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
如何用一个反斜杠替换多个反斜杠?我知道在一个字符串中,单个反斜杠用 \
表示,如下所示:
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