Ясар, воскресив этот вопрос, потому что у него было другое решение, которое не упоминалось.
Вместо того, чтобы просто проверять, что следующий тег-тег является открывающим тегом, это решение пропускает все
.
Со всеми отказами об использовании регулярного выражения для разбора html здесь regex:
<[^>]*>(*SKIP)(*F)|word1|word2|word3
Вот демон . В коде это выглядит следующим образом:
$target = "word1 word2 again word3";
$regex = "~<[^>]*>(*SKIP)(*F)|word1|word2|word3~";
$repl= '\0';
$new=preg_replace($regex,$repl,$target);
echo htmlentities($new);
Здесь онлайн-демонстрация этого кода.
Ссылка