Заменить String только в том случае, если строка является поиском (preg_replace multibyte)

У меня проблема. Я хочу заменить определенные строки только в том случае, если они точно такие, как я набирал. Поэтому, если есть строка с 5 Eur его следует заменить только, например, Steam 5 Euro , если он стоит один, а не если строка похожа. How are you 5 Eur pls .

С моим фактическим кодом это невозможно … Я использую например:

 $string = str_replace('Apple Itunes 25 Euro Guthaben Prepaid De', 'Apple iTunes 25 Euro', $string) 

Поскольку здесь строка содержит 25 Eur этот код также добавляет некоторые вещи:

 $string = str_replace('25 Eur', 'Steam 25 Euro', $string); 

Но если я хочу использовать preg_replace(/\b25 Eur\b/i) я получаю эту ошибку:

PHP Предупреждение: preg_replace (): Неизвестный модификатор ' ' в

Поэтому у меня есть два вопроса:

  1. Как использовать функцию многобайтовой замены?

  2. Как я могу сказать эту функцию только для замены определенной строки, если он стоит один, а не если он содержит искомую строку?

Приветствую вас и благодарю!

Это должно работать.

Искать по:

 ^(25 Eur)$ 

Заменить:

 Steam 25 Euro 

Входные данные:

 Apple Itunes 25 Euro Guthaben Prepaid De', 'Apple iTunes 25 Euro 25 Eur 

Вывод:

 Apple Itunes 25 Euro Guthaben Prepaid De', 'Apple iTunes 25 Euro Steam 25 Euro 

Код PHP:

 <?php $re = '/^(25 Eur)$/m'; $str = 'Apple Itunes 25 Euro Guthaben Prepaid De\', \'Apple iTunes 25 Euro 25 Eur'; $subst = 'Steam 25 Euro'; $result = preg_replace($re, $subst, $str); echo "The result of the substitution is ".$result; 

См. https://regex101.com/r/3DKEas/2