-4
空白とスラッシュをアンダースコアに置き換え、バックスラッシュを残したいと思います。'gsub'の正規表現でバックスラッシュを保持する
どうすればよいですか?
私は、次の正規表現があります
"hello\h /123".gsub(/[\s+\/]/, "_")
#=> "helloh__123"
をしかし、それはまた、文字列内のバックスラッシュを置き換えます。
空白とスラッシュをアンダースコアに置き換え、バックスラッシュを残したいと思います。'gsub'の正規表現でバックスラッシュを保持する
どうすればよいですか?
私は、次の正規表現があります
"hello\h /123".gsub(/[\s+\/]/, "_")
#=> "helloh__123"
をしかし、それはまた、文字列内のバックスラッシュを置き換えます。
ので、あなただけのスペースを変換したいとアンダースコアとスラッシュ場合は、好むかもしれない:
"hello\h /123".tr('/ ','__') # 2nd arg is two underscores
#=> "helloh__123"
(しかし、私は今のところ問題についてのコメントに同意する。)
バックスラッシュ内部二重引用符で囲まれた文字列リテラルは2倍にする必要があります。または、引用符で囲まれた単一の文字列リテラルを使用します。 https://ideone.com/NqLSk3を参照してください。 –
文字列にバックスラッシュはありません。 –
変数に入れると、 'hello \ c /123'.gsub(/\s+|\//、 "_") => "hello \\ c__123"というようになります。しかしputsは正しい出力を与えます。どのように変数でそれを取得するには? – explorer