Ruby on rails 如何使用正则表达式从字符串中查找总金额
大家好,我正在从事一个ruby-on-rails项目,其中包含ruby-2.5.0和rails 5。我有一个包含总金额的字符串。所以我需要使用正则表达式来计算总金额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美元是总金额。我尝试了/$
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