我正在尝试获取一个格式为 $5,000.23 以及 $22.43 或 $3,000 的数字
这是我的正则表达式,这是用 PHP 编写的。
preg_match('/\$([0-9]+)([\.,]*)?([0-9]*)?([\.])?([0-9]*)?/', $blah, $blah2);
它似乎可以很好地匹配 $5,500.23 格式的数字,但它似乎不能很好地匹配任何其他数字,例如 $0。
如何让一切都成为可选的?不应该将 () 分组并使用问号吗?
最佳答案
这应该可以解决问题:
\$[\d,.]*[\d]
特定的 PHP 示例:
$re = "/\\$[\\d,.]*[\\d]/";
$str = "\$1 klsjdfgsjdfg \$100 kjdfhglsjdfg \$1,000 jljsdfg \$1,000.00 ldfjhsdf";
preg_match_all($re, $str, $matches);
关于php - 美元符号旁边的抓取数字,可选千位和小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33792808/