Как удалить точное совпадение из строки?

Как я могу заменить/удалить слово с точным соответствием из строки, пример строки

$string = 'Hello world, command data test com';

Как удалить com (точное совпадение из строки), но не удалять com из команды в

str_replace удаляет com из команды, это не помогает

Matei Zoc 27.03.2019 11:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
1
580
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вам нужно использовать preg_replace. В основном preg_replace() ищет в теме совпадения с шаблоном и заменяет их заменой.

<?php
   $string = 'Hello world, command data test com';
   $string = preg_replace('/\bcom\b/', '', $string);
   echo $string;
?>

Объяснение: Вышеприведенный пример шаблона поясняется ниже

\б: Соответствует границе слова.
ком: Текст для сопоставления.

Для получения дополнительных определений специальных символов проверьте это

Спасибо! это то, что мне было нужно!

Matei Zoc 27.03.2019 11:25

@Smartpal я так не думаю, str_replace() замените команду на mand

Shanteshwar Inde 27.03.2019 11:27

@ShanteshwarInde Да, это .... Извините, я забыл com в команде. Проголосовали за

Smartpal 27.03.2019 11:32

@ShanteshwarInde готово, мне нужно было подождать еще 4 минуты, чтобы принять это

Matei Zoc 27.03.2019 11:35

Укороченная версия:

join(' ',array_diff(explode(' ', $string), ['com']));

Объяснение:

  • explode(' ', $string) разбивает вашу строку на массив слов
  • array_diff($words, ['com']) удаляет элементы второго массива из первого массива. Таким образом, если массив $words содержит слово com, оно будет удалено.
  • join(' ', $words) объединяет все строки в массиве $words, отделяя каждое слово друг от друга пробелом.

Полный фрагмент:

<?php
$string = 'Hello world, command data test com';
$words = explode(' ', $string);
$words = array_diff($words, ['com']);
$string = join(' ', $words);

хотя у моего ответа больше голосов, но этот мой любимый! просто добавьте объяснение, чтобы больше людей поняли. Спасибо!

Shanteshwar Inde 27.03.2019 11:36

Я искренне думаю, что ваш вариант лучше! Ахахах, я добавлю лучшее объяснение

gbalduzzi 27.03.2019 11:41

Другая версия.... Если ваша входная строка всегда в этом порядке, вы можете сделать это с помощью rtrim

Фрагмент

$string = 'Hello world, command data test com';
$string = rtrim($string, ' com');
echo $string;

Выход

Hello world, command data test

Прямой эфир демо

Документы rtrim

Другие вопросы по теме