如何在PHP中移除字符串中的连续重复逗号
问题原因
你原有代码中的正则/,+/仅能匹配连续无间隔的逗号,无法处理逗号之间夹杂空白的场景,因此无法满足需求。
实现代码
<?php $a = "test, , 1, , , 245 Park Avenue, New York, NY"; // 匹配所有连续的带任意空白的逗号组合,统一替换为单个逗号加空格 $my_string = preg_replace("/(\s*,\s*)+/", ", ", $a); // 可选:清理字符串首尾残留的逗号、空白 $my_string = trim($my_string, ", \t\n\r\0\x0B"); echo $my_string; // 输出结果:test, 1, 245 Park Avenue, New York, NY ?>
正则逻辑说明
\s*匹配0个或任意多个空白字符(包含空格、制表符、换行符等)- 分组
(\s*,\s*)+匹配所有连续出现的、中间夹杂任意空白的逗号序列 - 替换值设为
,可以统一保证每个逗号后仅保留一个标准空格,完全匹配你预期的输出格式 - 末尾的
trim为可选逻辑,用于清理字符串首尾可能残留的逗号或多余空白
内容的提问来源于stack exchange,提问作者vishan
相关产品推荐
相关产品推荐

