用R中的单个反斜杠替换斜杠

时间:2019-09-16 13:11:38

标签: r character-replacement

这可能是微不足道的,但是我没有找到任何有关此确切问题的问题。 我的问题与提出合适的正则表达式无关,而与准确指定替换零件有关。

x = "file_path/file_name.txt" - this is what I have
# "file_path\file_name.txt" - this is what I want

这是我尝试过的:

library(stringr)
str_detect(string = x, pattern = "/") # returns TRUE, as expected
#str_replace_all(string = x, pattern = "/", replacement = "\") # fails, R believes I'm escaping the quote in the replacement
str_replace_all(string = x, pattern = "/", replacement = "\\") # this results to "file_pathfile_name.txt", missing the backslash altogether
str_replace_all(string = x, pattern = "/", replacement = "\\\\") # this results to "file_path\\file_name.txt", which is not what I want

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

解决方案是转义转义字符,该字符最后表示4个'\'。

cat(gsub('/', '\\\\', "file_path/file_name.txt"))

使用“ print()”转义转义字符,或者使用“ cat()”获取纯字符串,查看标准输出之间的差异。

str_replace_all(string = x, pattern = "/", replacement = "\\\\")
cat(str_replace_all(string = x, pattern = "/", replacement = "\\\\"))