假设我有一个字符串"1,000,786“。我想把这个改成"1000786“。我知道preg_replace的第一部分应该是"0-9,0-9“,但我不知道如何将数字值返回到preg_replace的”替换“部分。谢谢。
编辑:对不起,我忘了提到它并不像删除逗号那么简单,因为字母字符可能包括在内。只有当逗号在两个数字之间时,我才希望它消失。
例如:“苹果,香蕉1746”将是“苹果,香蕉1746”。
发布于 2014-07-26 14:14:06
下面的正则表达式只有在逗号前面有一个数字并且必须后面跟着一个数字的情况下才会删除逗号。
(?<=\d),(?=\d)
替换字符串:
Empty string
演示
你的密码是,
<?php
$string = '1,000,786';
$pattern = "~(?<=\d),(?=\d)~";
$replacement = "";
echo preg_replace($pattern, $replacement, $string);
?> //=> 1000786
或
<?php
$string = 'Apple, Banana 1,746';
$pattern = "~(?<=\d),(?=\d)~";
$replacement = "";
echo preg_replace($pattern, $replacement, $string);
?> //=> Apple, Banana 1746
发布于 2014-07-26 14:12:47
不需要使用正则表达式,对str_replace()的调用就足够了:
$s = str_replace(",", "", "1,000,786");
发布于 2014-07-26 14:16:10
为了处理之前的文本,请考虑以下代码:
$text = 'Apple, Banana, 1,746';
preg_match('/[0-9]+,[0-9]+/', $text, $matches);
$text = str_replace($matches[0], str_replace(',', '', $matches[0]), $text);
https://stackoverflow.com/questions/24971884
复制相似问题