Преобразование этого preg_replace для соответствия слову с плюсомPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Преобразование этого preg_replace для соответствия слову с плюсом

Сообщение Anonymous »

В PHP мне нужно выделить несколько заданных слов в строке, например, заключить найденные совпадения в тег .
Но если у меня есть слово, оканчивающееся на +, я не могу этого сделать.
Я понимаю, что проблема, приведенная ниже, заключается в том, что плюс не является словом и нарушает совпадение слов с флагом \b. Но как я могу написать это так, чтобы оно соответствовало и переносило все заданные слова, даже если данное слово заканчивается на + ?
$my_text = 'test c+ and javascript etc but NOT javascripter';

$words_to_highlight = array('javascript', 'c+');

foreach($words_to_highlight as $word){

$search_pattern = str_replace('+', '\\+', $word);

// this doesn't match replacement
echo "\n".preg_replace("/\b(".$search_pattern.")\b/i", '$1', $my_text);

// works if I remove the \b flag, but I don't want to match "javascript" inside "javascripter"
echo "\n".preg_replace("/(".$search_pattern.")/i", '$1', $my_text);

}

Вывод:
test c+ and javascript etc but NOT javascripter
test c+ and javascript etc but NOT javascripter

test c+ and javascript etc but NOT javascripter
test c+ and javascript etc but NOT javascripter

Что я хочу получить:
test c+ and javascript etc but NOT javascripter


Подробнее здесь: https://stackoverflow.com/questions/788 ... ith-a-plus
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»