[問題] 如何在特定符號前面加上 反斜線 ?

看板Ruby作者 (喵小咩)時間16年前 (2008/11/08 21:26), 編輯推噓2(205)
留言7則, 2人參與, 最新討論串1/1
環境: Ruby 1.8.6 (not Rails) 狀況: 請問 ruby 的字串要如何在某些特定符號前面加上特定字元? 例如: Shelary's ruby program >"< . 我希望在 ' " 的前面加上反斜線 \ 變成: Shelary\'s ruby program >\"< . 但不是所有的符號都要加反斜線, 而是只有我想要加的符號才加 那要怎麼寫..執行效率才會比較快? 我本來是想用迴圈一個字元一個字元檢查, 但效率好像很差 >_< -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.45.78

11/08 21:42, , 1F
string.gsub("'", "\\\\'").gsub('"', '\\\\"')
11/08 21:42, 1F
※ 編輯: shelary 來自: 59.126.45.78 (11/08 22:58)

11/08 23:19, , 2F
很奇怪的是..當我轉成 \" 後..又要轉回來 " 時
11/08 23:19, 2F

11/08 23:19, , 3F
卻要用 string.gsub("\\'", "'").gsub('\\"', '"')
11/08 23:19, 3F

11/08 23:20, , 4F
也就是本來要用 \\\\ 轉回來卻是用 \\ .. 真奇怪
11/08 23:20, 4F

11/08 23:53, , 5F
我個人認為 gsub 有一點設計不良,前後用的不太一樣...
11/08 23:53, 5F

11/08 23:54, , 6F
後面的大概是要支援 \1 之類的東西,所以需要 \\
11/08 23:54, 6F

11/08 23:54, , 7F
前面就沒有這樣的東西,所以不用改寫成 \\
11/08 23:54, 7F
文章代碼(AID): #195PDtd2 (Ruby)
文章代碼(AID): #195PDtd2 (Ruby)