[英]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.