PHP Word заменяет проблему

На самом деле эта проблема не должна быть такой сложной, но я искал ее в stackoverflow, но не смог найти ничего, что работает так, как я хочу или могу понять. Вот что я прошу:
Изображение есть текст как:
«Привет, сегодня высокая температура»
Я хотел бы заменить строку «hi» на «al», но не хочу, чтобы слово high было заменено на «algh». Я знаю, что мне нужно использовать функцию preg_replace, но я не могу заставить ее работать.

PS: Если вы можете показать свое решение с массивом тоже, я буду более удовлетворен. Как будто есть массив строк, которые нужно изменить, и есть массив строк, которые нужно изменить как.

Спасибо за помощь, спасибо 🙂

-3

Решение

Вы можете использовать регулярное выражение с \ b, чтобы заставить его работать.

$string = 'hi today the temperature is high';
$pattern = '/\bhi\b/';
$replacement = 'al';
echo preg_replace($pattern, $replacement, $string);

\ б установить положение на границе слова (^ \ w | \ w $ | \ W \ w | \ w \ W)

https://regex101.com/r/WdQTMp/2

1

Другие решения

Я бы порекомендовал использовать негативный взгляд против непробельного символа \S,

Это приводит к простому регулярному выражению hi(?!\S):

<?php

$string = "hi today the temperature is high";
$string2 = preg_replace('/hi(?!\S)/', 'al', $string);
echo $string2; // "al today the temperature is high";

Это видно работает Вот.

Обратите внимание, что это будет охватывать только те строки, которые Начните с hi, Для того, чтобы исключить строки, которые имеют текст перед hi (лайк sushi)вам понадобится негативный взгляд сзади также:

<?php

$string = "I eat sushi - hi today the temperature is high";
$string2 = preg_replace('/(?<!\S)hi(?!\S)/', 'al', $string);
echo $string2; // "I eat sushi - al today the temperature is high";

Это видно работает Вот.

Надеюсь это поможет! 🙂

-1

For example:

<?php
$arrFrom = array("1","2","3","B");
$arrTo = array("A","B","C","D");
$word = "ZBB2";
echo str_replace($arrFrom, $arrTo, $word);
?>

I would expect as result: "ZDDB"However, this return: "ZDDD"(Because B = D according to our array)

To make this work, use "strtr" instead:

<?php
$arr = array("1" => "A","2" => "B","3" => "C","B" => "D");
$word = "ZBB2";
echo strtr($word,$arr);
?>

This returns: "ZDDB"
-2
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector