From: Hideo Konami Date: 2009-06-18T08:01:24+09:00 Subject: [ruby-list:46098] gsub における '&' の挙動 小波です。 テキスト中の記号を置換しようとしていて,'&'の振る舞いが他の 記号と異なることに気がつきました。困るのはもちろんですが,訳 が分からないのはもっと気持ちが悪いです。どなたか解決策と 理由を教えていただけないでしょうか。 ソース s = "abc_def &ghi 125$" s = s.gsub('_','\_') p s s = s.gsub('$','\$') p s s = s.gsub('&','\&') p s 結果 "abc\\_def &ghi 125$" "abc\\_def &ghi 125\\$" "abc\\_def &ghi 125\\$" ついでに: gsub! を使えば元の文字列の破壊的置換ができ ますが,置換すべき文字列がない場合には nil が返るので, 上のように自己代入的な書き方にしています。あんまり スマートではないのですが,次のようなのもいまいちですよね。 s.gsub!(s1,s2) if s.index(s1) せっかくの破壊的置換が使いにくいというのは残念に思うの ですが・・・