2014-10-06 4 views
-4

Я ищу для сканирования через некоторый HTML и искать конкретный текст (позволяет сказать, «Foo»), но если это в комментариях, я не хочу, чтобы включить егоСоздать регулярное выражение, которое игнорирует HTML комментарии

Так сказать, что я имел некоторую HTML вроде этого:

<div id="foo"> Some foo here 
<!-- this is a foo comment 

--> 
And finally some more foo 

было бы найти все Foo-х кРОМЕ Foo комментария

я играл с отрицательным lookaheads, но и для жизни меня не может заставить его работать ...

Любой гуру регулярных выражений там?

Я знаю, что некоторые люди будут предлагают использовать HTML-парсер, но я хочу, чтобы держаться подальше от ...

Заранее спасибо ...

+6

Я рекомендую прочитать [Почему вы не должны анализировать HTML с регулярным выражением] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xh tml-self-contains-tags/1732454 # 1732454) – Krease

+3

На стороне заметки, почему вы хотите держаться подальше от парсера HTML? Это правильный инструмент для работы. – Krease

+0

В основном потому, что я не пытаюсь разобрать HTML, я просто хочу определить, существует ли определенная строка, а не внутри комментария. Меня не интересует остальная часть html, если она сформирована правильно или это содержимое. Кажется, это идеальное использование регулярных выражений в одной строке кода - нет? Тот факт, что он является HTML, почти несуществен. Если я изменю вопрос, могу ли я определить, есть ли foo между кавычками, это имеет смысл? – nyrsimon

ответ

0

Regex не рекомендуется для этого, но если вы хотите:

foo(?![^>]*-->) 

Demo

+0

Спасибо. Очень признателен – nyrsimon

Смежные вопросы