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

これらのコンマの間にスペースがないと仮定すると、複数のコンマを 1 つのコンマに単純に置き換えることができます。

$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 に答える