有人可以告诉我,如果他们在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正则表达式的好资源吗?
答案 0 :(得分:3)
假设这些逗号之间没有空格,您只需用一个逗号替换多个逗号:
$cleadAddress = preg_replace('/,+/', ',', $address);
虽然您用逗号(!)替换每个逗号,但您也替换了多个逗号。如果更复杂的正则表达式值得节省一些执行时间,这取决于您的确切数据。
答案 1 :(得分:0)
可能是一个适当的RegEx,但这是我的工作 -
$cleanedAddress = str_replace(',',', ',preg_replace('/,+/', ',', $address));
使$ address以逗号分隔,运行preg_replace删除多个逗号,然后使用str_replace将逗号转换为逗号空格!