我已经从字符串中过滤了一些关键字,以删除无效的关键字,但现在我有很多额外的逗号。我如何删除它们,所以我从这里开始:
,,,,,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_split
和 array_filter
来实现此目的。
$string = ",,,,,apples,,,,,,oranges,pears,,kiwis,,";
$keywords = preg_split("/['s,]+/", $string);
$filterd = array_filter($keywords);
echo implode(",",$filterd);
结果:
apples,oranges,pears,kiwis
解释:
- 用逗号 "," 拆分为数组
- 使用 array_filter 删除空索引。
- 用","内爆数组并打印。
来自手册:preg_split — 通过正则表达式拆分字符串(PHP 4, PHP 5, PHP 7)
使用preg_replace和修剪怎么样?
$str=',,,,,apples,,,,,,oranges,pears,,kiwis,,';
echo trim( preg_replace('@,{2,}@',',',$str), ',');