、次のタスクのための正規表現で私を助けてください:私はいくつかのテーブルの「コスト」列を持っていますが、値が異なってあります数字、 "、"、 "。"以外の文字列からすべての文字を削除する方法Rubyを使って?
['1.22','1,22','$1.22','1,22$','$ 1.22']
は、私がdigits
と,
とを除くすべての文字を削除する必要があります.
。ですから、常にFloatとして解析できる値を取得する必要があります。
、次のタスクのための正規表現で私を助けてください:私はいくつかのテーブルの「コスト」列を持っていますが、値が異なってあります数字、 "、"、 "。"以外の文字列からすべての文字を削除する方法Rubyを使って?
['1.22','1,22','$1.22','1,22$','$ 1.22']
は、私がdigits
と,
とを除くすべての文字を削除する必要があります.
。ですから、常にFloatとして解析できる値を取得する必要があります。
"こんにちは" .tr( 'エル'、 'IP')#=> "カバ" によって これを試してみてください。
番号を抽出するには、次の
a = ["1.22", "1,22", "$1.22", "1,22$", "$ 1.22"]
a.map {|s| s[/[\d.,]+/] }
#=> ["1.22", "1,22", "1.22", "1,22", "1.22"]
が,
が.
('1,22'
のように - >1.22
)小数点のように扱われるべきでカンマを仮定し、これをフローティングに自分の価値観を変える必要があります。
a = ["1.22", "1,22", "$1.22", "1,22$", "$ 1.22"]
a.map {|s| s[/[\d.,]+/].gsub(',','.').to_f }
#=> [1.22, 1.22, 1.22, 1.22, 1.22]
試用:
yourStr.gsub(/[^0-9,.]/, "")
これはとても役に立ちました!コードに改行を入れる方法はありますか? – oliviasteger
@InspectorElement文字のリストに '\ r'と' \ n'を追加すると、それらは削除されません。 – ProgramFOX
a.map {|i| i.gsub(/[^\d,\.]/, '')}
# => ["1.22", "1,22", "1.22", "1,22", "1.22"]
もう1:
a= ['1.22','1,22','$1.22','1,22$','$ 1.22']
a.map{|i| i[/\d+.\d+/]}
# => ["1.22", "1,22", "1.22", "1,22", "1.22"]
あなたは何を試してみましたか?あなたの質問をする前に、いくつかのドキュメントやグーグルを読むことをお勧めします。 – stevekohls
'1,22'は何を解釈しますか? – bsd
コードとして書いたものはすべて無効です。それは文字列の配列ですか? – sawa