HTMLタグの正規表現構文を構築する方法は?
正規表現は、文字列を処理する過程でかけがえのない位置を持っています。今日、コンピューターの高レベル言語には対応する正規表現サポートパッケージがあります。
WebページのHTMLコードを構造化された文字列として扱う場合、正規表現と同様の方法で目的のHTMLタグ(タグ)を抽出するにはどうすればよいですか?
最初にそれを実装する方法を考えないでください。ただし、HTMLタグを正規表現のような方法で説明する方法を検討してください。 HTMLタグを取得するには、タグの2種類の属性を知る必要があります。
1。ラベルの場所。
2。タグ自体の属性。
たとえば、次のHTMLページで:
<html>
<body>
<div id = "bodywrapper">
<div id = "leftwrapper">
</div>
<div id = "rightwrapper">
<div>
<div>
<div>
<div>
</div>
</div>
</body>
</html>
上記のHTMLコードで2番目のDivタグを抽出する場合は、DivのID、クラス、および位置情報を指定する必要があります。今の問題は、上記の要件を満たす表現文法を設計する方法です。
例えば:
gettag:div {tag-name:div; tag-position:2; tag-class:column; tag-id:;タグコンテンツ:;}
Tag-Parent {tag-name:div; tag-position:2; tag-class:column; tag-id:;タグコンテンツ:;}
タグチャイルド{......}
この上には、わかりやすい説明的な構文があります。
またはPythonのような構文:
gettag:div
タグ名:
Tag-id:
タグポジション:2
タグクラス:列
タグコンテンツ:
Tag-Parent:
タグ名:
Tag-id:
タグポジション:2
タグクラス:列
タグコンテンツ:
タグチャイルド:
タグタイプ:テーブル
より適切な文法的な表現形式があるかどうかはわかりません。この表現文法を合理的に設計できる限り、その後の作業は簡単に行えます。これの究極の目標は、プログラマーが通常の文字列を処理するのと同じくらい便利なこの式で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)の2つの基準があります。 EREには、BRE機能やその他の概念が含まれます。
XSH、EGREP、SED、VI、UNIXプラットフォームの下でのプログラムなど、多くのプログラムで正規表現が使用されています。これらは、通常、標準全体のサブセットにすぎないHTMLやXMLなど、多くの言語で採用できます。