&
の文字をすべて\&
に置き換えてString.gsub
(または他の方法)にしたいとします。私はいくつかの組み合わせを試して、another question hereを読むが、何も動作するつもりはない。Rubyの "&"を "&"に置き換えるのは不可能なようですか?
"asdf & asdf".gsub("&", "\\\&") => "asdf & asdf"
&
の文字をすべて\&
に置き換えてString.gsub
(または他の方法)にしたいとします。私はいくつかの組み合わせを試して、another question hereを読むが、何も動作するつもりはない。Rubyの "&"を "&"に置き換えるのは不可能なようですか?
"asdf & asdf".gsub("&", "\\\&") => "asdf & asdf"
あなたのリンクの質問は、ソリューションを提供 - gsub
のブロック形式を使用します。
irb(main):009:0> puts "asdf & asdf".gsub("&"){'\&'}
asdf \& asdf
ruby-1.9.2-p180 :008 > puts "asdf & asdf".gsub(/&/, '\\\&')
asdf \& asdf
これは混乱ではありません。 'puts'がなければ、' result.inspect'を得ています。文字列の場合は、 'result'を得るために文字列を二重引用符で打つ必要があります。 –
私はあなたが1.8を使用していることを推測するつもりです。 1.8では、irb
はこれを言っています:
>> "asdf & asdf".gsub("&", "\\\&")
=> "asdf & asdf"
>> puts "asdf & asdf".gsub("&", "\\\&")
asdf & asdf
これはあなたが見ているものと一致します。後しかし、あなたはまだ別のバックスラッシュを追加した場合、あなたがしているものを手に入れることは:四重バックスラッシュのアプローチは、1.9.2と1.8.7の両方で私のために同じ単独でエスケープアンパサンドを生成
>> puts "asdf & asdf".gsub("&", '\\\\&')
asdf \& asdf
ので、それを上げます4人に(11人ではなく、4人だけが行う)。
これは&のためにはうまくいくかもしれませんが、 ' –
'の場合は正しくありません。実際、置換文字列は ''で区切られています。 'puts 'asdf' asdf" .gsub( "'"){"\\'"} ' – Chowlett
ライフセーバー!ありがとうたくさんの –