Здравствуйте. Помогите пожалуйста с регулярными выражениями. Эту задачу можно решить и без регулярный выражений но мне кажется что с их помощью будет легче. Задача такова: Мне нужно в тексте найти слово и выделить его например желтым цветом Например: Текст: This is the upgraded vendors account. Being a premier vendor gives you access to use all of the Premier Vendor tools. В этом тексте слово vendor встречается 3 раза (регистр букв не учитывается). И эти совпадения нужно выделить желтым цветом. Для этого нужно перед каждым началом слова vendor вставить <span style ="color:yellow;"> и как только слово заканчивается вставить </span> Результат должен быть таким: This is the upgraded vendors account. Being a premier vendor gives you access to use all of the Premier Vendor tools.
PHP: <?php $str = "This is the upgraded vendors account. Being a premier vendor gives you access to use all of the Premier Vendor tools."; $word = "vendor"; $str = str_replace($word, "<span style =\"color:yellow;\">$word</span>", $str); echo $str;
PHP: $b=preg_replace( "#(слово|vendor|неvendor)#i" , "<span style='color:#0000ff;'>\\1</span>" , $b );
PHP: <?php $text = 'This is the upgraded vendors account. Being a premier vendor gives you access to use all of the Premier Vendor tools.'; $search = 'vendor'; echo $test = preg_replace ('/[a-z]*(?:'.$search.')[a-z]*/si','<span style ="color:yellow;">$0</b></span>', $text); ?> хотя бы так. Интересно, что будет быстрее при регистронезависимой подсветке в больших объёмах текста, регулярки или разбор текста и str_replace? Никто не тестил?