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