【发布时间】:2021-03-03 03:50:23
【问题描述】:
所以,我正在对 lat/long 对进行一些操作,我需要将其转为:
39.1889375383777,-94.48019109594397
进入:
39.1889375383777 -94.48019109594397
我不能使用 str_replace,除非我想要一个包含 10 个搜索和 10 个替换字符串的数组,所以我希望使用 preg_replace:
$query1 = preg_replace( "/([0-9-]),([0-9-])/", "\1 \2", $query );
问题是“-”丢失了:
39.1889375383777 94.48019109594397
请注意,我有一个包含这些列表的字符串,试图一次完成所有操作:
[[39.1889375383777,-94.48019109594397],[39.18425796890108,-94.28288005131176],[39.41972019529712,-94.19956344733345],[39.41412315915102,-94.41932608390658],[39.34785744845041,-94.4893603307242],[39.1889375383777,-94.48019109594397]] P>
我设法用 preg_replace_callback 完成了这项工作:
$str = preg_replace_callback( "/([0-9-]),([0-9-])/",
function ($matches) {return $matches[1] . " " . $matches[2];},
$query
);
但仍然不确定为什么更简单的 preg_match 不起作用?
【问题讨论】:
标签: php regex preg-replace preg-replace-callback