r - r - 删除单个反斜杠
问题描述
我有一个带反斜杠的字符串,我想删除它们。
test = "m \"#\""
已尝试以下但均无效:
gsub( "\\\\", "", test )
gsub( "\\\\", "", test, fixed = T )
gsub( "\\", "", test )
gsub( "\\", "", test, fixed = T )
已经研究过类似的问题,但没有一个解决方案有效。
编辑:实际上这个文本将在 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() 来制作这个字符串。创建字符串后,反斜杠出现。
此处文本中给出的字符串是为了在此处创建一个可重复且简短的示例。
解决方案
我认为 JvdV 是对的,我认为"m "#""
没有反斜杠的字符串不能存在于 R 中。反斜杠生成 " 和 # 字符,而不是分别充当打开/关闭引号和注释标记。如果你有""""
,你会得到一个错误,因为你在另一个集合中有一组引号,这是不可能的。同样可能为 . 发生"m "#""
。但是,如果您输入"m "#""
哈希作为注释符号,则将其后面的所有内容都设为注释并得到"m "
. 您需要反斜杠以使 " 不是引号而是字符,并且 # 不是注释符号而是字符。
推荐阅读
- c++ - 重载模板函数
- rabbitmq - 在 rabbitmq 3.8.0 中找不到 prometheus 插件
- php - Opencart 编码语法
- html - 在 html 元素上只允许一次点击事件
- api - 防止滥用 Web api 的方法
- javascript - componentDidmount 内的 SetState 抛出错误
- cmake - CMake 步骤的规范名称是什么?
- laravel - 在 laravel 中加入多个表
- c++ - 无法使用 substr 正确解析带有空格的字符串并找到
- java - Oracle JDBC 优化:在 Spring 引导应用程序中启用 PreparedStatement 缓存