红宝石,正则表达式从字符串中提取价格

use*_*183 2 ruby regex ruby-on-rails

在 ruby​​ 中,我有一个这样的字符串:

str= 43,69 €
Run Code Online (Sandbox Code Playgroud)

使用正则表达式可以获得43,69吗?

我试过:

/\d+(?:\.\d+)?/
Run Code Online (Sandbox Code Playgroud)

但输出不正确: 43.0

Ben*_*enj 5

这应该工作

/\d+(?:[.,]\d+)?/
Run Code Online (Sandbox Code Playgroud)

[.,]部分匹配点或逗号的小数分隔符。如果您确定小数点分隔符将是逗号,则可以使用以下命令:

/\d+(?:,\d+)?/
Run Code Online (Sandbox Code Playgroud)