В 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
Преобразование этого preg_replace для соответствия слову с плюсом ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Необходимо регулярное выражение для соответствия слову, ограниченному/или концом строки
Anonymous » » в форуме JAVA - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-