2016-04-02 34 views
0

文字列内のすべての特殊文字をインデックスに置き換える必要があります。 例えば、特殊文字をそのインデックスに置き換えます。

"[email protected]$all%special^characters^" 

はなるはずです:

"I1need6to9change16all20special28characters39" 

すべての特殊文字が異なるのインデックス。 多くのリンクreplacing all with single character,occurances of a characterを確認しました。 私は非常に似たリンクを見つけましたが、私はこれらすべての特殊文字を置き換える必要があるので、これらを採用したくありません。replace its index number

また、私はこのような何かをしようとしている:

ここ
str.gsub!(/[^0-9A-Za-z]/, '') 

strが私の例の文字列です。 これはすべての文字をスペースで置き換えるため、スペースの代わりにインデックスを使用します。特殊文字またはこれらの7つのいずれか

私はこの7つを主に交換する必要がありますが、すべて交換すると問題ありません。

私はより簡単な方法が必要です。

ありがとうございます。

+0

を 'str'は何ですか? ..... – sawa

+0

strは文字列です( "I-need_to @ change $ all%special^characters ^")。 – Manishh

答えて

2

あなたはグローバル変数$`gsubのブロック形式を使用することができます

irb> str = "[email protected]$all%special^characters^" 
=> "[email protected]$all%special^characters^" 
irb> str.gsub(/[^0-9A-Za-z]/) { $`.length } 
=> "I1need6to9change16all20special28characters39" 
関連する問題