preg_replace соответствует целому слову на арабском языке
Я пытаюсь сделать
$text = preg_replace('/\bمرحبا بك\b/', 'NEW', $text);
но это не работает, я думаю, что эта функция не поддерживает арабский
3 ответа
Если ваш текст в кодировке UTF-8, добавьте модификатор 'u' к шаблону регулярных выражений для поддержки Unicode.
$text = preg_replace('/\bمرحبا بك\b/u', 'NEW', $text);
Не добавлять \b
в конце вашего регулярного выражения. Соответствие должно работать нормально, когда вы изменяете свой код на это:
$text = preg_replace('/\bمرحبا بك/', 'NEW', $text);
Вы не можете использовать \b
в конце, так как в слове (ах) есть пробел, который вы пытаетесь найти. \b
ничего не подходит, если в той части, которую вы пытаетесь найти, нет несимвольного символа.
Просто возьми str_replace. Нет необходимости в регулярных выражениях.
$text = 'hello bمرحبا بك world';
echo str_replace('bمرحبا بك', 'NEW', $text);