php preg_每秒更换一次

php preg_每秒更换一次,php,preg-replace,Php,Preg Replace,我需要改变这个 329638.798,7387605.001,330131.098,7387324.001,329740.398,7386851.001 ^ ^ 进入这个 329638.798,7387605.001L330131.098,7387324.001L329740.398,7386851.001 ^ ^ 更简单

我需要改变这个

329638.798,7387605.001,330131.098,7387324.001,329740.398,7386851.001
                      ^                      ^
进入这个

329638.798,7387605.001L330131.098,7387324.001L329740.398,7386851.001
                      ^                      ^
更简单地说

a1,b1,a2,b2,a3,b3 => a1,b1La2,b2La3,b3
这意味着用“L”替换每秒出现的逗号

我读过并尝试过这个

preg_replace('/(\S+,\S+)\s,/', '$1L', $geom);

没有成功。

如果仍要使用正则表达式,请使用以下命令:

preg_replace('/(,[^,]*?),/', '$1L', $geom)

如果仍要使用正则表达式,请使用以下命令:

preg_replace('/(,[^,]*?),/', '$1L', $geom)
快速解决方案:

$input = 'a1,b1,a2,b2,a3,b3';

echo preg_replace('/([^,]*?,[^,]*?),/', '$1L', $input);
输出:

a1,b1La2,b2La3,b3
329638.798,7387605.001L330131.098,7387324.001L329740.398,7386851.001
快速解决方案:

$input = 'a1,b1,a2,b2,a3,b3';

echo preg_replace('/([^,]*?,[^,]*?),/', '$1L', $input);
输出:

a1,b1La2,b2La3,b3
329638.798,7387605.001L330131.098,7387324.001L329740.398,7386851.001

在您的模式中有
\S
-它匹配任何非空白字符(包括逗号)的内容。您可以改用
\w
。以下是方法:

echo preg_replace('/(\w+,.*?\w),/', '$1L', $geom)
输出:

a1,b1La2,b2La3,b3
329638.798,7387605.001L330131.098,7387324.001L329740.398,7386851.001

在您的模式中有
\S
-它匹配任何非空白字符,包括逗号。您可以改用
\w
。以下是方法:

echo preg_replace('/(\w+,.*?\w),/', '$1L', $geom)
输出:

a1,b1La2,b2La3,b3
329638.798,7387605.001L330131.098,7387324.001L329740.398,7386851.001

为什么不直接使用
分解
,然后使用
foreach
?更简单。从正则表达式中删除
\s
,您应该会很好。为什么不使用
分解
,然后使用
foreach
?更简单。从正则表达式中删除
\s
,您应该会很好。