簡體   English   中英

preg_match括號模式

[英]preg_match parenthesized pattern

我正在嘗試將字符串中的一串小數更改為兩個小數點。 正則表達式似乎匹配它就好了。 問題在於更換。

這是我的代碼:

$input_lines = "-33.873293252 151.201538015999972,-33.873175 151.201689183999946";

print preg_replace("/[0-9]+(\.[0-9][0-9]?)?/", "$0 $2", $input_lines);

哪個輸出我想要的小數 | 我不想要的截斷的小數

 -33.87 3293252  151.20 1538015999972 ,-33.87 3175  151.20 1689183999946 

因此,我嘗試將replacement更改為$0 但是現在替換不再起作用了,而是給了我:

-33.873293252 151.201538015999972,-33.873175 151.201689183999946

我該如何重寫我的正則表達式,使其提供所需的輸出?

更好:

preg_replace("/(?<=\.\d\d)\d+/","",$input_lines);

將前兩位后的所有尾隨小數部分全部替換為空。

([-+]?\d+(?:\.\d{2})?)(\d*)

試試這個,用$1代替。

https://regex101.com/r/vD5iH9/46

$re = "/([-+]?\\d+(?:\\.\\d{2})?)(\\d*)/m";
$str = "-33.873293252 151.201538015999972,-33.873175 151.201689183999946";
$subst = "$1";

$result = preg_replace($re, $subst, $str);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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