PHP preg_replace — строка начинается с прямой косой черты

#php #string #preg-replace

#php #строка #preg-заменить

Вопрос:

Пытаюсь использовать preg_replace для поиска строк, которые начинаются и заканчиваются косой чертой, например "/Harry/" . (должно быть preg_replace)

Мне также нужно игнорировать регистр и убедиться, что это отдельное слово. Пока у меня есть следующее, но мне не очень повезло заставить это работать:(

 $old_words[0] = '/b/Harry/b/i';

$new_words[0] = 'Wizard';

$chat = preg_replace($old_words, $new_words, $chat);
  

Ответ №1:

Если ваша проблема действительно заключается только в границах слова b , тогда вы могли бы попробовать некоторые вспомогательные утверждения вместо этого:

 $old_words[0] = '#(?<!w)/Harry/(?!w)#i';
  

Это в основном гарантирует, что никакие буквы не могут встречаться ни до, ни после косой черты.

Ответ №2:

Если вы просто хотите заменить отдельные слова, нет необходимости использовать preg_replace . Вместо этого используйте str_ireplace (для замены без учета регистра). Однако вы можете использовать другие символы, кроме / , в качестве разделителя для вашего регулярного выражения: # , ~ , …