Всем привет! Никак не могу составить регулярное выражения. Нужно в строке найти слово (без учета кавычек) "бу" или "б/у" и заменить его на "б у" Причем это слово может быть в конце, в середине, в начале строки. Мои варианты не работают: Код (Text): $slova = preg_replace("/\b(бу|б\/у)\b/i", "б у", $slova); // заменяем ненужные символы $slova = preg_replace("/b(бу|б\/у)b/i", "б у", $slova); // заменяем ненужные символы
ниповезло. для работы с русскими буквами (юникодом) надо в регулярное выражение надо добавить модификатор u, что означает юникод: Код (Text): "/\b(бу|б\/у)\b/ui"
Выдает ошибку: preg_replace() [function.preg-replace]: Compilation failed: invalid UTF-8 string at offset 2
У меня <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> Это получается всю страницу нужно делать в UTF-8 или можно только кусок кода?
пхп на эту строчку глубоко всё равно. Переводить сам файл скрипта надо. Или преобразовать строку в utf8 перед использованием в preg_replace
$slova = iconv ('windows-1251', 'utf-8', $slova); $slova = preg_replace("/\b(бу|б\/у)\b/ui", "б у", $slova); Все равно не работает, почему так?
У самого файла поменяй кодировку на utf8. Код (PHP): $slova = "тут какая-то б/у хрень"; $slova = preg_replace("/\b(бу|б\/у)\b/ui", "б у", $slova); // заменяем ненужные символы $slova = preg_replace("/b(бу|б\/у)b/ui", "б у", $slova); // заменяем ненужные символы $slova = iconv ('utf-8', 'windows-1251', $slova);