Я посмотрел на многие вопросы здесь (и на многих других веб-сайтах) и некоторые подсказки, но ни один из них не дал мне однозначного ответа. Я знаю регулярные выражения, но я далеко не гуру. Этот конкретный вопрос касается регулярных выражений в PHP.
Мне нужно найти слова в тексте, которые не окружены гиперссылкой данного класса. Например, у меня может быть
This <a href="blabblah" class="no_check">elephant</a> is green and this elephant is blue while this <a href="blahblah">elephant</a> is red.
Мне нужно было бы сравнить со вторым и третьим слонами, но не с первым (определяется тестовым классом "no_check"). Обратите внимание, что может содержать больше атрибутов , чем просто href и класс в гиперссылках. Я придумал
((?<!<a .*class="no_check".*>)\belephant\b)
, который прекрасно работает в тестовом программном обеспечении regex, но не в PHP.
Любая помощь очень ценится. Если вы не можете предоставить регулярное выражение, но можете найти какую-то логику кода PHP, которая обойдёт его необходимость, я был бы в равной степени признателен.