正则表达式捕获价格结尾.00和,00

时间:2018-12-04 22:57:13

标签: php regex preg-replace price

我想使用PHP preg_match并删除所有价格结尾,但是我的正则表达式无法正常工作。

例如

1201203,00
123,123.23 
12.23
10.00
10

进入

1201203
123,123
12
10
10

这是我到目前为止使用的正则表达式:

[,|.]\d{2}$

1 个答案:

答案 0 :(得分:1)

您的正则表达式基本上是正确的,尽管您不需要字符集中的|,但它应该只是[,.](或者您可以使用(\.|,))。因此,您只需使用preg_replace

$value = preg_replace('/[,.]\d{2}$/', '', $value);

例如:

$values = array('1201203,00', '123,123.23', '12.23', '10.00', '10');
foreach ($values as &$value) {
    $value = preg_replace('/[,.]\d{2}$/', '', $value);
}
print_r($values);

输出:

Array (
    [0] => 1201203
    [1] => 123,123
    [2] => 12
    [3] => 10
    [4] => 10
)

Demo on 3v4l.org