想用一个逗号删除多个逗号[带或不带空格]。尝试了此正则表达式,但失败了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
2条答案
按热度按时间tktrz96b1#
您可以使用此解决方案:
RegEx Demo
明细:
^[,\h]+
:匹配开始后1个以上的逗号或空格|
:或\h*(,)(?:\h*,)+\h*
:匹配2个或多个逗号 (可选),以空格分隔。请注意,我们匹配捕获组中的单个逗号|
:或[,\h]+$
:匹配结尾前1个以上的逗号或空格'$1 '
:是替换以放置捕获的逗号值,后跟一个空格dldeef672#
您可以使用
trim($string, ', \n\r\t\v\x00')
从空白和逗号中trim
$string
(字符是defaulttrim
chars +逗号),然后使用preg_replace('/\s*(?:,\s*)+/', ', ', ...)
:请参阅PHP demo
\s*(?:,\s*)+
模式匹配零个或多个空格,后跟一个或多个逗号序列和零个或多个空格。