如何使用正则表达式正确捕获各类格式的美元金额?
正确正则表达式
\$\d{1,3}(?:,\d{3})*(?:\s+(?:thousand|million|billion))?
原正则问题说明
你之前使用的(\$\d+.\w+)存在两个核心问题:
.作为正则通配符匹配逻辑无边界,没有针对性处理金额中的千位分隔符、数字和单位之间的空格- 没有覆盖千位分隔符的多段数字场景,导致
$5,000,000这类带逗号的长金额只能匹配到前半段
匹配效果验证
使用上述正则可以完整提取所有目标金额:
- $1 thousand
- $5 million
- $5,000,000
- $3 billion
内容的提问来源于stack exchange,提问作者acbcccdc
相关产品推荐
相关产品推荐

