2017-04-23 15 views

答えて

5

gsubが行き過ぎここにある:サイトで正規表現を試す/

あなたが読むことができます(また、あなたの元の文字列に置き換えられます。この方法String#gsub!の強打のバージョンを持っていることに注意してください)。 String#trを使用します。

string = "bi2gger 1is 00ggooder" 
string.tr("^g", " ") 
# => " gg   gg  " 

これは新しい文字列を返します。代わりに元の文字列を変更するには、tr!を使用します。

はrepl.itでそれを参照してください:https://repl.it/KJPY

2

あなたは" "で、gを除くすべての文字に置き換えられている[^g]String#gsubを使用することができます。

string.gsub(/[^g]/," ") #=> " gg   gg  " 
0

これは、この問題が沸騰することができ

正規表現で達成することができますコメントが述べられているように、正規表現に至るまで。だから、最も簡単な解決策は、そのルールに一致するすべての文字を変更するString#gsubと、正規表現を使用することです/[^g]/

: あなたの文字列からすべての「G」の文字を交換するためには、正規表現を使用することができます。 RegexPal

0

String#gsubは、ここで使用することができます。

string = "bi2gger 1is 00ggooder" 

string.gsub(/./) { |s| s=='g' ? 'g' : ' ' } 
    #=> " gg   gg  " 
+0

'Hash.new( '')...'もここで動作します。 –

+0

読者:以前は 'h = Hash.new {''} .tap {| h | h ["g"] = "g"}; string.gsub(/./、h) '。 @ジョーダンの提案は改善ですが、それはまだかなり不自由な答えです。 (私は何を考えていたのですか?)それゆえ私はそれを変更しましたが、依然としてジョーダンの答えが好きです。 –

関連する問題