[問題] 在字串中自動加入跳脫小牙籤

作者: 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