0

有人可以让我知道如果它们在 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 正则表达式的好资源吗?

4

2 回答 2

4

假设这些逗号之间没有空格,您可以简单地将多个逗号替换为一个逗号:

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

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

于 2013-01-21T10:06:03.787 回答
0

可能是一个合适的正则表达式,但这是我的工作 -

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

使 $address 只是逗号分隔,运行 preg_replace 删除多个逗号,然后使用 str_replace 将逗号变成逗号空格!

于 2016-01-27T09:47:30.943 回答