首页 > 解决方案 > 如何使用正则表达式匹配的返回到另一个正则表达式

问题描述

text = "I have usd **12** only."
var amount = text.match(\(?:USD|usd)\s+.? 
\d+\.?[0-9]{1,2}\); 

它返回

usd *12

我只是想从这个回报中获取数字?

是否可以像这样再次使用“金额”:

amount.match(\\d+\.?[0-9]{1,2}\);

标签: javascriptregex

解决方案


你不需要两个正则表达式。这个正则表达式将自己完成这项工作:

(?:USD|usd)\s+.*?(\d+(?:\.\d{1,2})?)

它将捕获捕获组中的数字,因此您只需要一个正则表达式:

"I have usd **12** only."           // -> 12
"I have usd 12.00 only."            // -> 12.00
"I have usd **** 12.00 **** only."  // -> 12.0

正则表达式101演示


推荐阅读