[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Найти и заменить слово в строке
segazav
Всем привет!

Никак не могу составить регулярное выражения.
Нужно в строке найти слово (без учета кавычек) "бу" или "б/у" и заменить его на "б у"
Причем это слово может быть в конце, в середине, в начале строки.

Мои варианты не работают:
$slova = preg_replace("/\b(бу|б\/у)\b/i", "б у", $slova); // заменяем ненужные символы
$slova = preg_replace("/b(бу|б\/у)b/i", "б у", $slova); // заменяем ненужные символы
S.Chushkin
Так проще:
$slova = preg_replace("/\bб[\/]?у\b/i", "б у", $slova);


_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
segazav
Проверил в работе, что "бу", что "б/у" - ничего не заменяет, не работает ваш пример
S.Chushkin
Плохо проверил. ;) Всё работает.
Например:

print_r(preg_replace('/\bб[\/]?у\b/iu', 'б у', ['Бу', 'б/у', 'бе']));

Array
(
[
0] => б у
[1] => б у
[2] => бе
)


_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
segazav
Так мне нужно, чтобы любой вариант слова "бу" заменялся на "б у" с учетом пробела, а ваш код не меняет!
S.Chushkin
Цитата (segazav @ 13.09.2015 - 01:20)
Так мне нужно, чтобы любой вариант слова "бу" заменялся на "б у" с учетом пробела, а ваш код не меняет!

Прикольно, - ТС не помнит что написал ТС :)
Нужно в строке найти слово (без учета кавычек) "бу" или "б/у" и заменить его на "б у"


_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
S.Chushkin
Что-то сегодня на форуме повышенная активность неправильных/неудачных вопросов.
Магнитные бури что-ли...


_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
segazav
Ну так серьезно не заменяет huh.gif
В чем может быть причина?
Может быть в том, что строка передается методом GET ?
S.Chushkin
Этого я уже не знаю - не телепат. Тестовый пример Вы получили - всё работает, значит где-то в другом месте проблема, ищите.
Посмотрите, что представляет собой строка непосредственно перед регуляркой. Возможно она не раскодирована, или кодировка символов не та, или ещё что.
Это Ваш код, Вам и флаг в руки чтобы выяснить почему у Вас не работает.


_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
segazav
Кодировка страницы <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
S.Chushkin
Нужно одно из двух:
- скрипт должен иметь локальную кодировку символов такую же, как и у обрабатываемой строки (см. default_charset)
- конвертация строки в текущую кодировку скрипта (см., например, iconv)

В примере установлен модификатор u - это UTF-8. Т.е. при таком модификаторе обрабатываемое значение д.б. в кодировке UTF-8, иначе будут глюки.
В общем, приведите в равнозначность по кодировке все строки.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Быстрый ответ:

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