2016-01-04 70 views
2

我有以下一段代碼來抓取數量和另一個數量。使用正則表達式來抓取數字或小數點分隔符

@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(',','') 

它的工作原理,但它只會在用「$」作爲貨幣和「」作爲分隔符的語言環境工作。我如何使用正則表達式來抓取只有數字或小數點分隔符?

回答

0

這樣@payer_contract_params['amount'].to_s.gsub(/[^\d,]/, '')

這個用GSUB將取代不是數字或逗號所有字符。

0

它的簡單

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

擊穿

() - 表示捕獲組

^ - 表示正則表達式用下面的表達式

\d開始 - 匹配任何數字

+ - 1歡,或多個先前選擇

$的 - 表示正則表達式與前一表達式

|結束 - 或者

\. - 匹配的週期。請注意斜線以避開它。

+0

這個計算你的正則表達式在這裏紅寶石將匹配一個字符串,它僅僅是數字或字符串'「」'。我懷疑這不是你想要的。 –

相關問題