在我的脚本中,我用引号+空格替换了所有“,”逗号。
但是当涉及类似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
命令更改为此类似的
“如果逗号不在两个数字之间,则只将逗号转换为引号+空格”。这将是很好的。有可能吗?
答案 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