假设我有一个字符串“1,000,786”。我希望将其转换为“1000786”。我理解preg_replace的第一部分类似于“[0-9],[0-9]”,但我不明白如何在preg_replace的'replace with'部分中获取数值。感谢。
编辑:对不起,我忘了提及它并不像删除逗号那么简单,因为可能包含字母字符。只有当逗号介于两个数字之间时,我才希望它消失。
示例:“Apple,Banana 1,746”将是“Apple,Banana 1746”。
答案 0 :(得分:6)
以下正则表达式只会删除逗号,如果前面有一个数字,则必须后跟一个数字。
(?<=\d),(?=\d)
替换字符串:
Empty string
您的代码将是,
<?php
$string = '1,000,786';
$pattern = "~(?<=\d),(?=\d)~";
$replacement = "";
echo preg_replace($pattern, $replacement, $string);
?> //=> 1000786
OR
<?php
$string = 'Apple, Banana 1,746';
$pattern = "~(?<=\d),(?=\d)~";
$replacement = "";
echo preg_replace($pattern, $replacement, $string);
?> //=> Apple, Banana 1746
答案 1 :(得分:2)
您不必使用正则表达式,调用str_replace()就足够了:
$s = str_replace(",", "", "1,000,786");
答案 2 :(得分:1)
为了处理之前的文本,请考虑以下代码:
$text = 'Apple, Banana, 1,746';
preg_match('/[0-9]+,[0-9]+/', $text, $matches);
$text = str_replace($matches[0], str_replace(',', '', $matches[0]), $text);
答案 3 :(得分:0)