Я ищу, чтобы создать PHP Regex скрипт, который может соответствовать и заменить слова в строке.PHP: Regex заменить слово с помощью подстановочных знаков в Lookbehind Assertions
Регулярное выражению должно соответствовать только полным словам, которые я могу легко достичь с помощью:
/\b(SEARCH_TERM)\b/
Проблемы я имею что некоторые из строк содержат HTML элементов, такие как < через > тегов и <IMG> теги, где HREF и ГКЗ атрибуты могут иногда содержат в заменяющем слово в их пути. Если это слово заменено в этих элементах, ссылка или изображение больше не будут работать.
Пример заменить слово «тест» с «SEARCH_TERM» В следующем примере строка:
my test string <a href="http://www.google.com?q=my+test+string">link</a>
бы вернуть:
my SEARCH_TERM string <a href="http://www.google.com?q=my+SEARCH_TERM+string">link</a>
В то время как мне это нужно игнорировать HREF текст атрибута и return:
my SEARCH_TERM string <a href="http://www.google.com?q=my+test+string">link</a>
Я рассмотрел использование утверждений Regex's Lookbehind (как только bel ow), но подстановочные знаки переменной длины недопустимы.
/(?<!(href|src)=.*)\b(SEARCH_TERM)\b/
Примечание: Мне нужно сделать это с помощью регулярного выражения, а не анализатора DOM.
Используйте [HTML парсер] (http://stackoverflow.com/questions/3577641/parsing-and-processing-html- xml) .. не использовать regex..Believe me, его более простой для анализа html с помощью синтаксического анализатора, чем с помощью регулярного выражения. – Anirudha
Как уже упоминалось внизу, мне нужно сделать это с помощью Regex. – ticallian
все лучшее тогда.: P – Anirudha