使用正则表达式只抓取数字或小数点分隔符

时间:2016-01-04 22:53:06

标签: ruby-on-rails ruby regex

我有以下代码来获取金额和其他金额。

@payer_contract_params['payer'] = JSON.parse(@payer_contract_params['payer'])
@payer_contract_params['amount'] = @payer_contract_params['amount'].to_s.tr('$', '').tr(',','')
@payer_contract_params['stoploss_amount'] = @payer_contract_params['stoploss_amount'].to_s.tr('$', '').tr(',','')

它有效,但它只适用于使用' $'作为货币和','作为分隔符。我如何使用正则表达式来抓取只抓取数字或小数点分隔符?

3 个答案:

答案 0 :(得分:0)

像这样使用gsub @payer_contract_params['amount'].to_s.gsub(/[^\d,]/, '')

这将替换所有不是数字或逗号的字符。

答案 1 :(得分:0)

很简单

/(^\d+$)|(^\.$)/

击穿

() - 表示捕获组

^ - 表示正则表达式以下面的表达式

开头

\d - 匹配任何数字

+ - 匹配前一个选择器中的一个或多个

$ - 表示正则表达式以前一个表达式结束

| - 或

\. - 匹配一段时间。注意斜线以逃避它。

答案 2 :(得分:-1)

您可以在http://rubular.com/

在Ruby中计算您的正则表达式