簡體   English   中英

在PHP中跟隨字符串的Str_replace替代方法

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM