[问题] 在字串中自动加入跳脱小牙签

楼主: Mensch5566 (Double Green)   2021-02-04 20:48:02
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
工作的时候要透过POST向公司的数据库发送SQL请求。
以往请求的时候大概是这样
https://imgur.com/PRyLi2e
最近恰好有张资料表的字段开头是一堆 # 和 $,
导致要正常传送的话,必须手动在每个引号前面加入小牙签 \ 跳脱。
像是这样
https://imgur.com/U63m8Qs
问题是SQL如果长的话,想避免自己手动加入小牙签,不然会累死。
所以正在尝试各种方法让SQL最终发送出去的时候,都能够透过代码自动加上该有的小牙签。
目前找到最方便的办法是透过 r"()",
但是紧接着遇到下一个问题,就是Rstudio编辑器会把#当作备注,
导致脚本上面后面的东西都会乱掉,一堆unexpected token。
像是这样
https://imgur.com/BD9vYFQ
上面这个不换行还好,下面的abc <- c('abc') 不会有问题。
但如果SQL一坨的时候需要换行,#会被识别为备注,
就会变成这样
https://imgur.com/gYgYCxa
主要诉求:
1. 想将SQL语句自动化加入小牙签,并且能夹在body送出去。
2. 使用r"()"的话,让编辑器正常识别括号。
附上脚本(POST的url是公司的,脚本上只能拿掉了,不好意思):
https://drive.google.com/file/d/1memSyxbYRqq0s-uXabhE2-PAyig3bgZA/view?usp=sharing
想请问有经验的大大们,有没有什么办法能解决?
不见得要用r”()”也无所谓。
多谢了!Orz
[环境叙述]:
R version 4.0.0 (2020-04-24)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Catalina 10.15.5
作者: locka (locka)   2021-02-05 02:13:00
http://i.imgur.com/uApRF9w.jpg原po想要做到的是这样吗?我的想法是在funtion里面多一步,加一个gsub利用正则表达式寻找特殊字符并加入backslash(小牙签)
作者: andrew43 (讨厌有好心推文后删文者)   2021-02-05 15:09:00
如果是单、双引号交错使用呢?
楼主: Mensch5566 (Double Green)   2021-02-05 19:22:00
先感谢各位耐心帮忙,我问题可能没说清楚,我重新解释
作者: locka (locka)   2021-02-05 20:41:00
所以是在双引号前面加反斜线,那一样可以用gsub做不是吗?
楼主: Mensch5566 (Double Green)   2021-02-05 21:23:00
不是的,问题不在自订函数里面。
作者: andrew43 (讨厌有好心推文后删文者)   2021-02-06 00:41:00
可以和rstudio提报issue。编辑器应该可以再聪明一点才是。
楼主: Mensch5566 (Double Green)   2021-02-06 10:02:00
好的,准备回报去!感谢协助Orz感谢提醒,一直纠结代码,更新Rstudio,新版已解决

Links booklink

Contact Us: admin [ a t ] ucptt.com