Re: [問題] Ruby RegExpr 的疑惑
※ 引述《zhadow (zzz)》之銘言:
: 我在 programming ruby 中看到
: puts '\\a\\b\\c'.gsub(/\\/,'\\\\') 的結果是 \a\b\c
: 而不是 \\a\\b\\c
: 看了書中的說明還是搞不清為什麼,
: 請問原理是什麼呢?
(update:下面的回答應該是錯誤的 詳見推文討論)
實驗了一下,應該是puts搞的鬼
puts和printf("%s", ...)會把escape character再解讀一次
irb(main):074:0> puts '\\a\\b\\c'.gsub(/\\/,'\\\\')
\a\b\c=> nil
irb(main):075:0> printf("%s", '\\a\\b\\c'.gsub(/\\/,'\\\\'))
\a\b\c=> nil
irb(main):076:0> p '\\a\\b\\c'.gsub(/\\/,'\\\\')
"\\a\\b\\c"=> nil
irb(main):077:0> '\\a\\b\\c'.gsub(/\\/,'\\\\')
=> "\\a\\b\\c"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.36.11
推
11/09 03:50, , 1F
11/09 03:50, 1F
→
11/09 04:02, , 2F
11/09 04:02, 2F
推
11/09 13:04, , 3F
11/09 13:04, 3F
→
11/09 13:22, , 4F
11/09 13:22, 4F
推
11/09 18:48, , 5F
11/09 18:48, 5F
推
11/09 21:42, , 6F
11/09 21:42, 6F
推
11/09 22:20, , 7F
11/09 22:20, 7F
→
11/09 22:20, , 8F
11/09 22:20, 8F
→
11/09 22:20, , 9F
11/09 22:20, 9F
※ 編輯: yzugsr 來自: 123.193.36.11 (11/09 22:21)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 4 篇):