str_ireplace () с сохранением case

Как я могу использовать str_ireplace (или что-то подобное), чтобы заменить текст для форматирования, а затем вернуть с такими же заглавными буквами?

Пример:

$original="The quick red fox jumps over the lazy brown dog.";
$find="thE";

print str_ireplace($find,'<b>'.$find.'</b>',$original);

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

Я хочу сохранить исходный регистр и применить только форматирование, в данном примере - полужирный текст.

Спасибо.

27
задан Charles 25 April 2012 в 06:27
поделиться

2 ответа

$original = "The quick red fox jumps over the lazy brown dog.";
$new = preg_replace("/the/i", "<b>\$0</b>", $original);

дает " быстрый рыжий лис перепрыгивает ленивого коричневого пса". Если вы хотите сопоставить определенные слова, вы можете добавить границы слов: preg_replace ('/ \ bthe \ b / i', ... .

Если вы хотите параметризовать замену, вы можете использовать preg_quote :

 preg_replace('/\b' . preg_quote($word, "/") . '\b/i', "<b>\$0</b>", $original);
41
ответ дан 28 November 2019 в 05:19
поделиться

Либо замените точным словом, либо используйте preg_replace:

preg_replace('/(The)/i', "<strong>$1</strong>", $original);
3
ответ дан 28 November 2019 в 05:19
поделиться
Другие вопросы по тегам:

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