【发布时间】:2020-01-22 23:33:53
【问题描述】:
我想在一个带逗号的单词后添加一个空格。
它只是部分起作用。
$srcString = "AA,BB,CC, DD, EE";
// Variant A
$string = preg_replace('/(\D)(\,)(\D)/','$1, $3', $srcString);
// Variant B
//$string = preg_replace('/([a-zA-Z]+)(\,)([a-zA-Z]+)/','$1, $3', $srcString);
echo '<pre>';
echo 'Source: ' . $srcString;
echo '</pre>';
echo '<pre>';
echo 'Target: ' . $string;
echo '</pre>';
使用变体 A,结果如下所示:
来源:AA、BB、CC、DD、EE
目标:AA、BB、CC、DD、EE
这是 DD 和 EE 之前的 2 个空格。
使用变体 B,结果如下所示:
来源:AA、BB、CC、DD、EE
目标:AA、BB、CC、DD、EE
看起来不错,除了BB,CC没有空间。
如何解决?
【问题讨论】:
-
\D匹配任何不是十进制数字的字符,因此它也会捕获DD之前的空格。 -
您可以通过单击“v”来接受最适合您的问题的答案。查看此图了解更多信息:i.stack.imgur.com/OGwTL.png