【发布时间】:2013-01-19 19:22:18
【问题描述】:
谁能告诉我,如果多个逗号在 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 正则表达式的好资源吗?
【问题讨论】:
-
由于您可以得到多个逗号空格组合,因此您需要用逗号替换任何“逗号(可选空格逗号)”序列。在 Perl 中,您可以编写
s/,(\s*,)+/,/g(或者,更复杂但具有相同整体效果的s/,(?:\s*,)+/,/g,使用非捕获括号)。 PHP 的音译可能是:preg_replace(',( *,)+', ',', $address),但我不确定。