与えられた文字列 "5 900 000"
私は使用してスペースを取り除きたい gsub
次のパターンで
gsub(/s/, "")
しかし、それはうまくいかないようです。
gsub(" ", "")
回答:
回答№1の場合は25あなたが代わりに置き換えをしたいならば、あなたは使う必要があります:
str.gsub!(/s/,"")
あるいは、gsubは置換文字列を文字列で返します。
str2 = str.gsub(/s/,"")
EDIT:あなたの答えによると、スペースではなく文字列に印刷不可能な文字が埋め込まれているようです。を使う / D / 検索文字列はあなたが望むものかもしれません。以下は、数字以外の文字に一致し、それを空の文字列に置き換えます。
str.gsub!(/D/,"")
回答№2のための7
>> "5 900 00".gsub(" ","")
=> "590000"
それは本当に文字列ですか?
変数tryを変更したい場合、.gsubは値を返しますtry .gsub!( ""、 "")
回答№3の4
ただキックのために:あなたはここでも正規表現が必要ですか? String#tr
トリックをうまくやるべきです:
telemachus ~ $ irb
>> "500 500 12".tr(" ", "")
=> "50050012"
>> "500 500 12".tr!(" ", "")
=> "50050012"
〜と同様に gsub
そして gsub!
、 !
methodは、変更された結果を返すのではなく、変更を適切な場所に行います。私はあなたがここで欲しいのか分からない。
このような場合、 tr
私にはもっと簡単に思えます。最適化を探しているのではありませんが、多くの文字列メソッドがあることを忘れないでください。 その他 正規表現よりも。
答え№4の2
することをお勧めします str.gsub!(/s+/, "")
効率上の理由から。
回答№5の2
これが役に立つことを願ってみてください。
2.2.1 :001> str= " Jai Kumar rajput ";
# " Jai Kumar rajput "
2.2.1 :001> str.squish.downcase.tr(" ","");
# "JaiKumarRajput"
答え№6の場合は1
"5 900 000".gsub(/s/,"")
正常に動作します
私が見たものからあなたはgsubを書いた ドット それがなければならない(foo、bar) string.gsub(foo、bar)
回答№7は0
print "5 900 000".gsub(/s/, "")
私のために働く。
あなたは変数に結果に影響を与えていますか?
回答№8の場合は0
どういう意味ですか
str.gsub!.(/s/,"")
感嘆符付き?
回答№9の場合は0
おもしろいことに、私が文字列を印刷すると私が得ることです。
697302240000
しかし、データベースに到達するのは697 000です。 私は私が与えたパターンがあなたの提案と同様に働くべきであることを知っています、しかしこれは少し「馬鹿げた」事件のようです:-)