看板 Ruby 關於我們 聯絡資訊
我還是覺得很困惑 @@b irb(main):022:0> puts '\\a\\b\\c'.gsub(/\\/,'\\') \a\b\c irb(main):023:0> puts '\\a\\b\\c'.gsub(/\\/,'\\\\') \a\b\c irb(main):024:0> puts '\\a\\b\\c'.gsub(/\\/,'\\\\\\') \\a\\b\\c irb(main):025:0> puts '\\a\\b\\c'.gsub(/\\/,'\\\\\\\\') \\a\\b\\c irb(main):026:0> puts '\\a\\b\\c'.gsub(/\\/,'\\\\\\\\\\') \\\a\\\b\\\c 我記得之前就碰過這個問題了,我是 trial & error 弄到對就不管了 不過我想可能跟這個有關吧 = = irb(main):038:0> puts '\a' \a irb(main):039:0> puts '\\a' \a irb(main):040:0> puts '\\\a' \\a irb(main):041:0> puts '\\\\a' \\a -- In Lisp, you don't just write your program down toward the language, you also build the language up toward your program. 《Programming Bottom-Up》- Paul Graham 1993 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.28.18
zhadow:如果你能了解下面的4個puts結果,應該就沒問題了吧 11/09 23:54
godfat:啊,replace 前就變了,我懂了。循其本,這樣的意義? 11/10 00:04
zhadow:第1次escape character是把string literal轉成string value 11/10 00:44
zhadow:第2次則是因為取代的字串可以包含控制字元,所以要再 11/10 00:46
zhadow:escape character 11/10 00:48
godfat:我的意思是 '\\a' 和 '\a' 等價的意義? 11/10 01:27
zhadow:single quote 只處理 "\" "'", 所以'\\a'的第1個\後有\, 11/10 01:35
zhadow:所以2個\\變成 \, 但是'\a'中的\後面不是"\" or "'", 11/10 01:38
zhadow:所以不用轉,直接等於\ 11/10 01:39
zhadow:'\\a' 和 '\a' 的值都是 \a 11/10 01:40
godfat:ok, 我大概懂你的意思了,感謝 :D 11/10 02:04