【发布时间】:2018-12-04 22:57:13
【问题描述】:
我想 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 price
我想 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 price
你的正则表达式基本上是正确的,虽然你的字符集中不需要|,它应该只是[,.](或者你可以使用(\.|,))。所以你可以使用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
)
【讨论】:
[^\d,.] - 该字符集代表任何不是的字符(因为前导^)一个数字,@ 987654331@或.
[^\d,.]\d{2}$