Str_replace替代PHP中的后续字符串

时间:2015-07-11 18:44:03

标签: php

在我的脚本中,我用引号+空格替换了所有“,”逗号。

但是当涉及类似3,456,778的数字时,它也会将逗号转换为引用+空格。有没有办法添加命令来忽略这样的大数字,所以它不会将其转换为:

3" 456" 778"

如果有quotationm + space +任何数字,则将引号+空格转换为逗号。我的意思是我知道如何使用str_replace命令,但我不知道如何选择任何数字0-9。 有没有帮助呢?要将其转换为:

3,456,778

我想我需要详细说明一下。我需要转换这段文字:

Value=3,456,778,id=777

要:

Value=3,456,778" id=777"

但问题是它还在数字之间转换那些中间逗号。 所以,即使我可以将str_replace命令更改为此类似的 “如果逗号不在两个数字之间,则只将逗号转换为引号+空格”。这将是很好的。有可能吗?

3 个答案:

答案 0 :(得分:2)

这个怎么样?

preg_replace("/,([^0-9]|$)/", "\"$1", $text);

这将匹配除逗号后跟数字的所有文字。

例如,这个:

$text = "123,23 adas , asdsa d, asdasd sa 1234,234324,asdas 324324 234,";
echo $text; echo "<br/>";
echo preg_replace("/,([^0-9]|$)/", "\"$1", $text);

将回应这个:

123,23 adas , asdsa d, asdasd sa 1234,234324,asdas 324324 234"
123,23 adas " asdsa d" asdasd sa 1234,234324"asdas 324324 234"

答案 1 :(得分:-1)

从你的描述中你并不清楚你真正想做什么。

然而,这可能是迈向正确方向的一步:

preg_replace('/([0-9]+)" /', '\\1,', '3" 456" 778"');

答案 2 :(得分:-1)

不是最好的解决方案,但可以尝试一下。

$copy_date = '3" 456" 778"';
$copy_date = preg_replace("(\"\s{1})", ",", $copy_date);

$copy_date1 = preg_replace("(\")", "", $copy_date);
print $copy_date1;

o/p:3,456,778