Php 删除多个逗号正则表达式

Php 删除多个逗号正则表达式,php,regex,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)

有人能告诉我,如果多个逗号在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正则表达式?

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

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

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

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

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

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

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

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

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

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

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

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

由于可以使用多个逗号-空格组合,因此需要用逗号替换任何“逗号(可选空格-逗号)”序列。在Perl中,您可以编写
s/,(\s*,)+/,/g
(或者,更复杂但总体效果相同,
s/,(?:\s*,)+/,/g
,使用非捕获括号)。PHP的音译可能是:
preg_replace(',(*,)+',',',',$address)
,但我不确定这一点。因为您可能会得到多个逗号-空格组合,所以您需要用逗号替换任何“逗号(可选空格-逗号)”序列。在Perl中,您可以编写
s/,(\s*,)+/,/g
(或者,更复杂但总体效果相同,
s/,(?:\s*,)+/,/g
,使用非捕获括号)。PHP的音译可能是:
preg_replace(',(*,)+',',',',$address)
,但我不确定。在Regex中对相同的挑战有什么建议吗?在Regex中对相同的挑战有什么建议吗?