Как заменить два или более вхождения одного и того же символа другим символом? - PullRequest
0 голосов
/ 24 ноября 2010

Я пытаюсь найти фрагмент кода PHP, который заменяет несколько соседних вхождений символа в строке только одним вхождением этого символа.

Пример:

my-string--is---dashed

должно стать:

my-string-is-dashed

Ответы [ 4 ]

6 голосов
/ 24 ноября 2010

Самое простое решение - использовать регулярное выражение для замены.

$output = preg_replace('/-+/', '-', $input);

На самом деле, чтобы ограничить пустые замены, вы можете выбрать следующее:

$output = preg_replace('/-{2,}/', '-', $input);
3 голосов
/ 24 ноября 2010

с регулярным выражением:

var_dump(preg_replace('/-{2,}/', '-', 'my-string--is---dashed')); // string(19) "my-string-is-dashed"

Если вы имели в виду любой повторяющийся символ, это немного сложнее:

var_dump(preg_replace('/(.)(\\1)+/', '$1', 'tttooosssdihfjkkk')); string(9) "tosdihfjk"

Где \\1 - это в основном совпадающий символ (соответствует (.)).

1 голос
/ 24 ноября 2010

Попробуйте это:

$new_string = preg_replace('/-{2,}/', '-', $string);
0 голосов
/ 24 ноября 2010
str_replace("--", "-", $mystring);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...