2012年3月28日

[ruby-list:48667] "a_b$c" を "a\_b\$c" に変換したいのですが、、、

dezawaです

"a_b$c" を "a\_b\$c" に変換したいのですが、、、

\ でなく 他の文字なら大丈夫なのですが, 
puts "a_b$c".gsub(/[$_]/,'|\&') => a|_b|$c

\ だとうまく行かない

puts "a_b$c".gsub(/[$_]/,'\\\&') => a\&b\&c
puts "a_b$c".gsub(/[$_]/,'\\&') => a_b$c
puts "a_b$c".gsub(/[$_]/,'\&') => a_b$c


"a_b$c".split("").inject(""){|s,c| s + (c =~ /[_$]/ ? "\\"+c : c) }
ではなんかなぁ、、、

二段でやるとして、一段目変換の文字列が絶対出てこないって保証はいかに、
"a_b$c".gsub(/[$_]/,'"""\&').gsub(/"""/,"\\")


良い方法を教えてください。

# \ の扱いっていろいろ難しいです。

投稿者 xml-rpc : 2012年3月28日 21:26
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/109216
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。