塚本です。 keiichi matsunagaさんの<439649a0.4529%ma2 / lifemedia.co.jp>から >|str.gsub(/[%$_^]/,"\\#{$1}") といった感じにやって > > マニュアルよると,置換文字列には「$数字」は使えないけど「\数字」は使 >えるみたいですね。 > >irb(main):027:0> str.gsub(/[%$_^]/,'\\ \\1') >=> "abc\\ %def\\ $ghi\\ _jkl\\ ^mno" > >irb(main):028:0> str.gsub(/([%$_^])/,'\\\\1') >=> "abc\\1def\\1ghi\\1jkl\\1mno" > > あれ'\\\\1'にするとうまくいかないのはなぜだろう。「\\\\」→「\\」の >エスケープが優先されちゃうから? str.gsub(/([%$_^])/,'\\\\\\1') とすれば、いけますね。 str.gsub(/([%$_^])/){"\\#$1"} の方が見やすいかも。 http://www.ruby-lang.org/ja/man/?cmd=view;name=trap%3A%3A%5C%A4%CE%B1%C6%B6%C1 を参考にしました。 -- Akihito Tsukamoto mailto:tsukamoto / netage.co.jp