Удалите лишние запятые из строки Переполнение стека

Я отфильтровал некоторые ключевые слова из строки, чтобы удалить недопустимые, но теперь у меня много лишних запятых. Как мне удалить их, чтобы я пошел от этого:

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

К этому

apples,oranges,pears,kiwis

Этот вопрос уникален, потому что он также имеет дело с запятыми в начале и в конце.

3

Решение

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

в основном вы используете регулярное выражение для поиска любой запятой и заменяете ее одной запятой.
это действительно очень простое регулярное выражение. Вы должны узнать о них!

https://regex101.com/ очень поможет с этим.

Ой, забыл: убрать запятые перед или после, используйте

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

Другие решения

Используйте PHP взорваться () а также 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
?>
7

Вы также можете достичь этого с помощью 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

Объяснение:

  1. разделить запятой «» в массив
  2. используйте array_filter для удаления пустых индексов.
  3. взорвать массив с «,» и распечатать.

Из руководства: preg_split — Разделить строку регулярным выражением (PHP 4, PHP 5, PHP 7)

1

Как насчет использования preg_replace и trim?

$str=',,,,,apples,,,,,,oranges,pears,,kiwis,,';
echo trim( preg_replace('@,{2,}@',',',$str), ',');
0
По вопросам рекламы [email protected]