想要一个字符串填充文本并从中提取价格。例如,这里应该匹配的内容:
$1,234.55
$90.99
$90
$100.30
$203
这里的正则表达式帮助会很棒,非常感谢你们的时间!这将用于PHP或Javascript。
答案 0 :(得分:0)
您可以使用以下正则表达式匹配所有价格字符串,
\$\d+(?:,\d+)*(?:\.\d+)?
<强>解释强>
\$
匹配文字$
符号。\d+
匹配一个或多个数字。(?:,\d+)*
匹配逗号和以下数字零次或多次。(?:\.\d+)?
匹配一个点和以下数字。 ?
将整场比赛视为可选项。 答案 1 :(得分:0)
答案 2 :(得分:0)
试试这个/^\$(\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})
并抓住分数