#php #preg-replace #whitespace
#php #preg-заменить #пробелы
Вопрос:
У меня есть строка, в которой я хочу удалить все пробелы вокруг определенного символа с помощью preg_replace. В моем случае этот символ является /
.
Например:
first part / second part
стало бы first part/second part
Или, допустим, этот символ :
теперь:
first part : second part
стало бы first part:second part
Я не смог найти пример того, как это сделать… Спасибо!
Комментарии:
1. Спасибо, ребята, вы были быстры! Все решения работают.
2. Добро пожаловать в StackOverflow creatoro! Мы стараемся отвечать на большинство вопросов здесь очень быстро — даже неплохо обновить страницу через несколько минут, чтобы увидеть все ответы.
Ответ №1:
$string = preg_replace("/s*([/:])s*/", "$1", $string);
Объяснение:
s*
означает любое количество (*
) пробелов (s
)[/:]
является либо/
, либо:
. Если вам нужен другой символ, просто добавьте его сюда.- скобки — это группа захвата, на которую вы ссылаетесь с
$1
значением, что если она соответствует a:
, то будет означать 1 доллар:
.
Ответ №2:
Замените :
своим символом.
$string = preg_replace("/s*:s*/", ":", $string);
На английском:
Замените любое количество пробелов (включая 0), затем a :
и затем снова любое количество пробелов, просто на a :
.
Ответ №3:
сопоставьте необязательный пробел, за которым следует ваш символ (заключенный в квадратные скобки), за которым следует другой необязательный пробел, а затем замените его вашим записанным символом
preg_replace('/s*(:)s*/',"$1",$str);