[英]Str_replace alternative for following strings in PHP
在我的脚本中,我用引号+空格替换了所有“,”逗号。
但是,当涉及到3,456,778
类的3,456,778
,它也会将逗号转换为quote + space。 有什么方法可以添加到命令中来忽略像这样的大数字,因此它不会将其转换为:
3" 456" 778"
如果有quotationm + space +任何数字,然后将quotation + space转换为逗号。。我的意思是我知道如何使用str_replace
命令来执行此操作,但是我不知道如何选择任何数字0-9
。 有帮助吗? 要将其转换为:
3,456,778
我想我需要详细说明一些。 我需要转换此文本:
Value=3,456,778,id=777
至:
Value=3,456,778" id=777"
但是问题在于它还会在数字之间转换那些中间逗号。 因此,即使我可以将str_replace
命令更改为“如果逗号不在两个数字之间,则只能将逗号转换为引号+空格”。 这将是很好的。 可能吗?
那这个呢?
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"
从您的描述中并不清楚您实际上想要做什么。
但是,这可能是朝正确方向迈出的一步:
preg_replace('/([0-9]+)" /', '\\1,', '3" 456" 778"');
也许不是最好的解决方案,但是可以尝试一下。
$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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.