文字ではない文字列内のすべての文字をgsubし、「#」に置き換えたい。「この正規表現が一致しない場合はgsub()」のような正規表現が必要だと思います。
何か案は?
お母さん、正規表現はありません...
str.tr( '^A-Za-z', '#' )
str.gsub(/[^a-zA-Z]/, '#')
^は一致しないことを意味します
もちろん、文字クラスの否定を使用できます。
"aBc$%^".gsub(/[^A-Za-z]/, '#') => "aBc###"
コードパッドでこれを試してください:
puts "kjhdfuy37685682#$$%@dfjahf".gsub(/[^a-z]/i, '#')
言葉は重要です
すべての文字... '#' に置換str.gsub(/[^a-zA-Z]+/, '#')
各文字 ... '#' に置換str.gsub(/[^a-zA-Z]/, '#')