У меня возникла проблема с поиском слов в строке и преобразованием их в ссылки. Как сделать поиск, который рассматривает слова, содержащие «-» как целое слово, а не как 2 слова, разделенные «-»?PHP preg_replace: совпадающие слова, содержащие тире
Вот пример, если я ищу слово «исчерпывающий», моя функция поиска также будет соответствовать части слова «неисчерпывающий», хотя я не хочу, чтобы это слово соответствовало.
$string = "Bla bla bla non-exhaustive blabla bla exhaustive";
$words = array('exhaustive','non-exhaustive');
foreach ($words as $word) {
$string = preg_replace('/\b'.$word.'\b/i', '<a href=#>'.$word.'</a>',$string);
}
echo $string;
Результат:
Бла бла бла не- исчерпывающими блабла бла исчерпывающими
Большое спасибо за вашу помощь!
Вы можете явно предотвратить дефис: ' '/ \ Ь [^ \ -] '. $ word.' \ b/i'' –