从字符串 PHP 中删除多余的逗号


Remove excess commas from string PHP

我已经从字符串中过滤了一些关键字,以删除无效的关键字,但现在我有很多额外的逗号。我如何删除它们,所以我从这里开始:

,,,,,apples,,,,,,oranges,pears,,kiwis,,

对此

apples,oranges,pears,kiwis

这个问题是独一无二的,因为它还处理开头和结尾的逗号。

$string = preg_replace("/,+/", ",", $string);

基本上,您使用正则表达式查找任何逗号并将其替换为单个逗号。这实际上是一个非常基本的正则表达式。你应该了解这些!

https://regex101.com/将对此有很大帮助。

哦,忘记了:要删除前面或后面的逗号,请使用

$string = trim($string, ",");

使用 PHP 的 explode() 和 array_filter() 函数。

步骤:

1)用逗号分解字符串。

2)你会得到一个数组。

3)用array_filter()过滤。这将从数组中删除空白元素。

4)再次,用逗号implode()结果数组。

5)您将从字符串中删除逗号。

<?php
$str = ',,,,,apples,,,,,,oranges,pears,,kiwis,,';
$arr = explode(',', $str);
$arr = array_filter($arr);
echo implode(',', $arr);// apples,oranges,pears,kiwis 
?>

您也可以通过使用 preg_splitarray_filter 来实现此目的。

$string = ",,,,,apples,,,,,,oranges,pears,,kiwis,,";
$keywords = preg_split("/['s,]+/", $string);
$filterd = array_filter($keywords);
echo implode(",",$filterd);

结果:

apples,oranges,pears,kiwis

解释:

  1. 用逗号 "," 拆分为数组
  2. 使用 array_filter 删除空索引。
  3. 用","内爆数组并打印。

来自手册:preg_split — 通过正则表达式拆分字符串(PHP 4, PHP 5, PHP 7)

使用preg_replace和修剪怎么样?

$str=',,,,,apples,,,,,,oranges,pears,,kiwis,,';
echo trim( preg_replace('@,{2,}@',',',$str), ',');