Удалить пробелы вокруг определенного символа с помощью preg_replace

#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);