2012-03-01 4 views
1

Я пытаюсь найти следующие регулярные выражения для реализации моей моей программы для синтаксического анализа данного html-файла. Не могли бы вы помочь мне с любым из них?Регулярные выражения для HTML

<div> 
<div class=”menuItem”> 
<span> 
class=”emph” 
Any string beginning with < and ending with >, i.e. all tags. 
The contents of the body tag. 
The contents of all divs 
All divs that make menus 

мне удалось выяснить, что единственный DIV тег просто " <div>" и «все выражение метки является <(\"[^\"]*\"|'[^']*'|[^'\">])*>

Как вы думаете, вы могли бы мне помочь с любой из остальных? Спасибо заранее парни ...

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

+3

[Не использовать регулярные выражения для разбора HTML. Ты будешь себя сумасшедшим.] (Http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html) –

+0

Я знаю, но это часть задания, и это попросил, чтобы я сделал это вот так::/ –

+2

@AlexEncoreTr: Это, наверное, трюк. Если вы попытаетесь ответить на него, не предлагая альтернативу регулярным выражениям, вы автоматически откажетесь от курса. –

ответ

4

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

https://stackoverflow.com/a/1732454/457201

+0

Ах, только что видел ваши причины для использования регулярных выражений.Но как только ваш класс закончил, совет стоит. Er, удачи ... –

+0

Oooooh Я знаю, что я должен быть ленивым и использовать уже существующую библиотеку. Это то, что сделал бы программист! Но, к сожалению, это вводное задание для регулярных выражений, и я должен сделать это так. Я ненавижу нашего лектора за это, потому что я знаю, что следующая лаборатория представит библиотеки регулярных выражений, но сейчас я должен сделать это жестким и глупым способом. –

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