Ruby on rails 如何使用正则表达式从字符串中查找总金额

Ruby on rails 如何使用正则表达式从字符串中查找总金额,ruby-on-rails,regex,Ruby On Rails,Regex,大家好,我正在从事一个ruby-on-rails项目,其中包含ruby-2.5.0和rails 5。我有一个包含总金额的字符串。所以我需要使用正则表达式来计算总金额 String:- "TOTAL EFT CHANGE Taxable Ite.s TOTAL includes GST OTHER SAVINGS 0000000000 $73.26 HAIERF(RDS stm IGA KARAWARA *AOI TERMINAL" 这里73.26美元是总金额。我尝试了/$

大家好,我正在从事一个ruby-on-rails项目,其中包含ruby-2.5.0和rails 5。我有一个包含总金额的字符串。所以我需要使用正则表达式来计算总金额

String:-
"TOTAL 
EFT 
CHANGE 
Taxable Ite.s 
TOTAL includes GST 
OTHER SAVINGS 
0000000000 
$73.26 
HAIERF(RDS stm IGA 
KARAWARA *AOI 
TERMINAL" 

这里73.26美元是总金额。我尝试了
/$(\d{1,2}(\.)\d{1,2})/
/^\d{1,4}(\.\d{0,2})$/
,但它不起作用。请帮我弄一下确切的正则表达式。提前感谢。

根据op的评论更新:

/TOTAL(?=((?!TOTAL).)*).*?(\$\d{1,4}(?:\.\d{1,2})?)/im
这是两个正则表达式的汇编

样本源()


您忘了转义
$
…如何转义?。就像您对dot所做的那样。/\$(\d{1,2}(\)\d{1,2})/是否正确?您可以修改它吗?谢谢,有没有办法让正则表达式只在Total关键字之后搜索?由于在Total关键字之前可能有许多金额带有美元符号,因此我只想在Total关键字之后搜索。难道不能有更多的
Total
吗?是的,可以有更多的Total,但我想在第一个Total之后搜索。有可能吗?核对答案谢谢让我试试这个。
re = /TOTAL(?=((?!TOTAL).)*).*?(\$\d{1,4}(?:\.\d{1,2})?)/im
str = 'TOTAL   $234
EFT 
CHANGE 
Taxable Ite.s 
TOTAL includes GST 
OTHER SAVINGS 
0000000000 
$73.26 
HAIERF(RDS stm IGA 
KARAWARA *AOI 
TERMINAL
$83.26

Total
asdasfd
sadfasdf
$1235
'
str.scan(re) do |match|
    puts match[1]
end