想用一个逗号删除多个逗号 [带或不带空格]。尝试了这个正则表达式,但失败了 preg_replace("/\s{1,5},\s{1,5}+/", ", ", $string);
尝试了其他解决方案,但找不到任何空格也存在逗号的解决方案。
示例输入
GUWAHATI, TEZPUR, , BAMUNI HILLS, MAHABHAIRAB TEMPLE, AGNIGARH ,
GUWAHATI, TEZPUR , , BAMUNI HILLS,, MAHABHAIRAB TEMPLE, AGNIGARH,
GUWAHATI, , TEZPUR, , BAMUNI HILLS, MAHABHAIRAB TEMPLE, AGNIGARH
预期输出
GUWAHATI, TEZPUR, BAMUNI HILLS, MAHABHAIRAB TEMPLE, AGNIGARH
最佳答案
你可以使用这个解决方案:
$s = preg_replace('/^[,\h]+|\h*(,)(?:\h*,)+\h*|[,\h]+$/m', '$1 ', $s);
分割:
^[,\h]+
:匹配开始后的1+个逗号或空格|
:或者\h*(,)(?:\h*,)+\h*
:匹配 2 个或多个由空格分隔的逗号可选。请注意,我们匹配捕获组中的单个逗号|
:或者[,\h]+$
:匹配结束前的1+个逗号或空格'$1 '
:替换为将捕获的逗号值后跟一个空格
关于php - 在PHP中用单个逗号删除多个逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74203721/