Regex以匹配页面中的任何货币

Regex to match any currency in page

本文关键字:任何 货币 Regex      更新时间:2023-09-26

想要获取一个充满文本的字符串,并从中提取价格。例如,它应该匹配以下内容:

$1,234.55
$90.99
$90
$100.30
$203

Regex在这里的帮助将是惊人的,非常感谢你的时间!这将在PHP或Javascript中使用。

您可以使用下面的正则表达式来匹配所有价格字符串,

'$'d+(?:,'d+)*(?:'.'d+)?

演示

解释:

  • '$匹配文字$符号
  • 'd+匹配一个或多个数字
  • (?:,'d+)*匹配逗号和以下数字零次或多次
  • (?:'.'d+)?匹配一个点和以下数字。?将整个匹配变成可选匹配

Tada:

'$['d,]+(?:'.'d+)?

这里是在实践

试试这个/^'$('d{1,3}(?:,'d{3})*)(?:'.('d{1,2}))?$/:

"$1,121,234.55".match(/^'$('d{1,3}(?:,'d{3})*)(?:'.('d{1,2}))?$/);

(JS代码)

这应该适用于以下模式:

$1
$2.21
$56,231
$12,212.12
$56,823,163.12

第一组$1将是全美元(例如没有美分),第二组$2将是美分。

详细描述:

  • '$是美元符号
  • ('d{1,3}(?:,'d{3})*)捕获整美元价值
    • 'd{1,3}是前三位
    • (?:,'d{3})*前三位之后的所有内容
  • (?:'.('d{1,2}))?捕获美分,它是可选的
    • (?:'.忽略点
    • ('d{1,2})并捕获美分

祝你好运!