Является ли регулярное выражение javascript только подмножеством?
Нет, они отличаются - существует множество механизмов регулярных выражений, и каждый из них имеетразличные особенности / причуды.
C # имеет больше возможностей, чем JavaScript, но один из JS не является производным от C #, поэтому он не является подмножеством.
Вот пара страниц, которые документируют различия:
И весь этот веб-сайт ( регулярные-регулярные выражения.info ) стоит посетить, чтобы узнать больше о регулярных выражениях.
Регулярное выражение соответствует вложенным html-divs
Вероятно, не во всех случаях.
И, конечно, это не будет возможно дляодиночное регулярное выражение JS, поскольку, помимо прочего, оно не поддерживает такие вещи глубины.
Вы используете не тот инструмент для этой работы - синтаксический анализ HTML должен выполняться с помощью правильного анализатора / селектора HTML, а затем анализDOM, чтобы найти вложенные div.
Все, что реализует Sizzle , должно делать (то есть jQuery , Dojo Toolkit и другие).
Например, что-то вроде jQuery('div:has(div)')
или dojo.query('div:has(div)')
или аналогичное должно найти вложенные элементы div (т. Е. Выбрать все элементы div, в которые вложен элемент div) и корректно справится с различными причудами, которые могут быть сложными, еслиневозможно с помощью одного регулярного выражения.
edit: я должен убрать div, включая текст между ними, прочь.
<div id="foo"><div>blubb</div><div foobar>blubb</div></div>some
non html...
должен остаться только "некоторый не html ...".Так что я думаю, что не могу использовать htmlparser?
Нет - это еще одна причина использовать парсер HTML, а не пытаться взламывать бесполезные регулярные выражения.
jQuery('#foo div').remove()
Это удалит все дочерние DIV и оставит текстовый узел HTML на месте.
В зависимости от ваших точных требований, селектор может потребоваться изменить, но это абсолютно непростая задача для инструмента, предназначенного для понимания HTML.