html2regexp - Regular Expression Generator for HTML Element

English / Japanese

はじめに

html2regexpとは

html2regexpはHTML要素を抽出する正規表現を自動生成するツールです。 抽出対象のHTML要素を指定したHTMLファイルを入力すると、それらのHTML要素のみを全て抽出する正規表現を出力します。

動作例

次のHTMLファイルをhtml2regexpに入力します。 このとき、タグの末尾の"h2r"により、抽出対象のHTML要素を指定します。

<ul>
   <li><a href="hoge" class="h" h2r>hoge</a></li>
   <li><a href="huga" class="h" h2r>huga</a></li>
</ul>
<div>
   <a href="f">f</a>
</div>
html2regexpは、このHTMLファイルから次の正規表現を生成します。 なお、このとき"h2r"は正規表現には含まれません。
(<(\w*?)\s*([^>]*?" class="h"[^>]*?)>(.*?)<\/\2>)
この正規表現を実際に使うには multiline option, ignore case option, utf-8 option を指定する必要があります。

html2regexpの利用例

html2regexpは次の場面で有用と考えられます。
HTMLの情報抽出
html2regexp を使うことで、HTMLファイルから特定の情報を抜き出す正規表現を簡単に作成できます。
自動テストの作成
Webアプリケーションのテストでは、適切なHTMLファイルが生成されることを検証する必要があります。 html2regexp を使うことで、検証用の正規表現を簡単に作成できます。

html2regexpの制限

現在のところ、html2regexpには、次の制限があります。

デモ

次のデモページでhtml2regexpの機能を試せます。

ダウンロード

インストール

動作環境

html2regexp を動かすにはrubyが必要です。 次の環境で動作確認しています。

インストール手順

インストールの際には、次の手順に従って、各モジュールをインストールする必要があります。

libstree

libstree-0.4.2-y はSuffix Treeライブラリlibstree-0.4.2を 拡張したライブラリです。
注意: libstree-0.4.2-y はオリジナルの libstree と互換性がありません。 libstree-0.4.2-y をインストールするとオリジナルの libstree を上書きしますので、ご注意ください。
$ tar xvzf libstree-0.4.2-y.tar.gz
$ cd libstree-0.4.2-y
$ ./configure
$ make
$ sudo make install

liblaika

liblaikaは正例の文字列群と、負例の文字列群を入力すると、 正例の文字列群にのみ存在する部分文字列を出力するC++ライブラリです。 例えば、正例として"hoge", "koge"、負例として"huge"を与えた場合、"oge"を出力します。
$ tar xvzf liblaika-0.0.1.tar.gz
$ cd liblaika-0.0.1
$ ./configure
$ make
$ sudo make install

laika-ruby

laika-rubyはliblaikaのRubyバインディングです。 このバインディングはswigにより作成しました。
$ cd liblaika-0.0.1
$ cd ruby
$ ruby extconf.rb
$ make
$ sudo make install

html2regexp

html2regexpをインストールします。この時、 HTMLから正規表現を抜き出すRubyライブラリKollawaraもインストールされます。
$ tar xvzf html2regexp-0.1.1
$ cd html2regexp-0.1.1
$ sudo ruby setup.rb

llamerada at gmail dot com Last modified: Wed Oct 18 21:30:10 JST 2006