[#48659] == 演算子でちとはまりました — dezawa <dezawa@...>
6 messages
2012/03/22
[ruby-list:48667] "a_b$c" を "a\_b\$c" に変換したいのですが、、、
From:
dezawa <dezawa@...>
Date:
2012-03-28 12:26:35 UTC
List:
ruby-list #48667
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(/"""/,"\\")
良い方法を教えてください。
# \ の扱いっていろいろ難しいです。