删除多个逗号正则表达式

时间:2013-01-19 19:22:19

标签: php regex

有人可以告诉我,如果他们在PHP中彼此相邻,我会删除多个逗号。

$address= rtrim(preg_replace('!\s+!', ' ', $address_line_1.' '.$address_line_2.', '.$town_village_city.', '.$state_province_county.', '.$postal_code.', '.$country),',');
//return  preg_replace('/([!?,.])+/',' ',$address);
return  preg_replace('!\,+!',' ',$address);

例如,我可能有一个没有town_village的地址,所以最后会有多个逗号。

还有人用于测试PHP正则表达式的好资源吗?

2 个答案:

答案 0 :(得分:3)

假设这些逗号之间没有空格,您只需用一个逗号替换多个逗号:

$cleadAddress = preg_replace('/,+/', ',', $address);

虽然您用逗号(!)替换每个逗号,但您也替换了多个逗号。如果更复杂的正则表达式值得节省一些执行时间,这取决于您的确切数据。

答案 1 :(得分:0)

可能是一个适当的RegEx,但这是我的工作 -

$cleanedAddress = str_replace(',',', ',preg_replace('/,+/', ',', $address));

使$ address以逗号分隔,运行preg_replace删除多个逗号,然后使用str_replace将逗号转换为逗号空格!