выделите слово в строке, если оно содержит ключевое слово

Если вы используете кордову, попробуйте очистить команду cordova

30
задан Simon 20 March 2010 в 16:58
поделиться

2 ответа

Попробуйте следующее:

preg_replace("/\w*?$keyword\w*/i", "<b>$0</b>", $str)

\ w *? соответствует любым символам слова перед ключевым словом (как минимум если возможно) и \ w * любые символы слова после ключевого слова.

И я рекомендую вам использовать preg_quote , чтобы избежать ключевого слова:

preg_replace("/\w*?".preg_quote($keyword)."\w*/i", "<b>$0</b>", $str)

Для поддержки Unicode используйте флаг u и \ p {L} вместо \ w :

preg_replace("/\p{L}*?".preg_quote($keyword)."\p{L}*/ui", "<b>$0</b>", $str)
54
ответ дан 27 November 2019 в 20:38
поделиться

Вы можете сделать следующее:

 $str = preg_replace("/\b([a-z]*${keyword}[a-z]*)\b/i","<b>$1</b>",$str);

Пример:

$str = "Its fun to be funny and unfunny";
$keyword = 'fun';
$str = preg_replace("/\b([a-z]*${keyword}[a-z]*)\b/i","<b>$1</b>",$str);
echo "$str"; // prints 'Its <b>fun</b> to be <b>funny</b> and <b>unfunny</b>'
5
ответ дан 27 November 2019 в 20:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: