首页 > 解决方案 > r - 删除单个反斜杠

问题描述

我有一个带反斜杠的字符串,我想删除它们。

test = "m \"#\""

已尝试以下但均无效:

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

已经研究过类似的问题,但没有一个解决方案有效。

替换 R 中的单个反斜杠 删除单个反斜杠字符串 R

编辑:实际上这个文本将在 system() 函数中传递以运行 mosquitto 客户端。用户将提供各种参数作为输入,命令将即时创建。

完整的命令如下所示:mosquitto_sub -h test.mosquitto.org -q 0 -k 60 -t \"#\"

然而,预计会是这样的:mosquitto_sub -h test.mosquitto.org -q 0 -k 60 -t "#"

否则system()不接受。因此,需要去除背斜。

参数0和由用户提供60#因此使用 paste0() 来制作这个字符串。创建字符串后,反斜杠出现。

此处文本中给出的字符串是为了在此处创建一个可重复且简短的示例。

标签: rregex

解决方案


我认为 JvdV 是对的,我认为"m "#""没有反斜杠的字符串不能存在于 R 中。反斜杠生成 " 和 # 字符,而不是分别充当打开/关闭引号和注释标记。如果你有"""",你会得到一个错误,因为你在另一个集合中有一组引号,这是不可能的。同样可能为 . 发生"m "#""。但是,如果您输入"m "#""哈希作为注释符号,则将其后面的所有内容都设为注释并得到"m ". 您需要反斜杠以使 " 不是引号而是字符,并且 # 不是注释符号而是字符。


推荐阅读