[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не вырезает слово в конце
gam0ra
Есть вот такое регулярное выражение которое удаляет слово "Хороший"

$p = '/Хороший[.|,| ]/iu';
echo preg_replace($p,"",'Привет Хороший человек',1);
//Выводит: Привет человек

Если в строке после слова "Хороший" есть пробел запятая или точка то все работает.
А если нету не чего после слова "Хороший" то это слово не удаляется

$p = '/Хороший[.|,| ]/iu';
echo preg_replace($p,"",'Привет Хороший',1);
//Выводит: Привет Хороший

Что еще нужно дописать чтобы второй вариант тоже работал?)
kostr
У вас вот эта часть обязательная - [.|,| ]
То есть если после слова Хороший не стоит что-то из перечисленного, то условие не выполнено. Звездочку поставьте.
gam0ra
kostr
Спасибо
neadekvat
Не надо звездочку. Есть такая штука, \b, которая означает границу слова.

<?php
$testsTexts = [
'хороший человек',
'нехороший человек',
'очень хороший человек',
'слегка хороший',
'человек Хороший с большой буквы',
'Хороший здесь, хороший там',
];


$pattern = '#\bхороший\b#iu';

foreach ($testsTexts as $text) {
echo preg_replace($pattern, '', $text) . "<br>";
}


Вывод:
человек
нехороший человек
очень человек
слегка
человек с большой буквы
здесь, там
gam0ra
neadekvat
Спасибо, это мне и было нужно)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.