Как построить синтаксис регулярного выражения для тегов HTML?
Регулярные выражения имеют незаменимые позиции в процессе обработки строк. Сегодня в компьютерных языках высокого уровня есть соответствующие пакеты поддержки регулярных выражений.
Если мы рассматриваем код HTML на веб -странице как структурированную строку, как мы можем извлечь желаемые теги HTML (теги), аналогично регулярным выражениям?
Давайте не будем рассмотреть, как его реализовать, но рассмотрим, как описать тег HTML регулярно, подобный выражению. Чтобы получить тег HTML, вам нужно знать 2 типа атрибутов тега:
1. Расположение ярлыка;
2. Атрибуты самого тега;
Например, на следующей странице HTML:
<html>
<тело>
<div id = "bodywrapper">
<div id = "Leathrapper">
</div>
<div id = "rightwrapper">
<div>
<div>
<div>
<div>
</div>
</div>
</body>
</html>
Если вы хотите извлечь второй тег DIV в приведенном выше HTML -коде, мне нужно указать информацию о идентификаторе, классе и местоположении Div. Теперь вопрос в том, как спроектировать грамматику выражения, которая отвечает вышеуказанным требованиям?
например:
getTag: div {Tag-name: div; Tag-Position: 2; Tag-Class: Column; Tag-id:;; Tag-content:;}
Tag-parent {Tag-name: Div; Tag-Position: 2; Tag-Class: Column; Tag-id:;; Tag-content:;}
Tag-crink {......}
Выше это простой для понимания описательный синтаксис.
Или питонный синтаксис:
Gettag: Div
Tag-name:
Tag-id:
Метка: 2
TAG-CLASS: столбец
Tag-Content:
Tag-Parent:
Tag-name:
Tag-id:
Метка: 2
TAG-CLASS: столбец
Tag-Content:
Tag-crind:
Тип тега: таблица
Я не знаю, есть ли более подходящая форма грамматического выражения. Пока эта грамматика выражения может быть разработана разумно, последующая работа будет легко выполнить. Конечная цель этого: программисты могут анализировать HTML -код с этим выражением, так же удобно, как обработка обычных строк.
Я надеюсь, что все будут участвовать и дать больше идей. Я улучшу эту грамматику на основе отзывов каждого и сделаю реализацию на основе этой грамматики.
См.
Основное введение в регулярные выражения можно найти здесь:
http://www.vevb.com/htmldata/2006-03-16/1142469074.html
http://www.vevb.com/htmldata/2006-03-16/1142468929.html
Регулярные выражения были впервые предложены математиком Стивеном Клееном в 1956 году, основанного на дополнительных результатах исследований естественного языка. Регулярные выражения с полным синтаксисом использовались в сопоставлении символов формы и позже были применены к области расплавленной информационной технологии. С тех пор, после нескольких периодов развития, текущие стандарты были одобрены ISO (Международная организация стандартов) и признаны открытой группой.
Регулярные выражения не являются специализированным языком, но они могут использоваться в качестве стандарта для поиска и замены текста в файле или символе. Он имеет два стандарта: базовые регулярные выражения (BRE), расширенные регулярные выражения (ERE). ERE включает в себя функции BRE и другие концепции.
Регулярные выражения используются во многих программах, включая XSH, EGREP, SED, VI и программы в рамках платформы UNIX. Они могут быть приняты многими языками, такими как HTML и XML, которые обычно являются лишь подмножеством всего стандарта.