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

问题描述 投票:0回答:1

我想用 php

preg_match
删除所有价格结尾,但我的正则表达式不起作用。

例如,

1201203,00
123,123.23 
12.23
10.00
10

进入

1201203
123,123
12
10
10

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

[,|.]\d{2}$
php regex preg-replace
1个回答
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
)

3v4l.org 上的演示

© www.soinside.com 2019 - 2024. All rights reserved.