データベース説明

 

 

データベースについて

正規表現マスターは、作った正規表現パターンを登録する機能があります。

その際、登録されたパターンのデータベースは、XML(拡張マークアップ言語)の形で保持されています。

データベースはキャッシュとしてその都度保存されているので、ブラウザを閉じても保持されます。

ただし、使用しているPCに保存されたキャッシュですので、構築されたデータベースはそのPCでしか利用できません。

また、キャッシュがあると言っても、いつ何時消えてしまうか分かりません。(可能性として)

そこでファイルとして保存することで他のPCでも構築したデータベースを利用することができます。

 

DB保存開くイメージ

↑データベースファイルの保存ボタンと読み込みボタン。

 

データベースはXMLファイルとして外部に保存し、いつでもどこでも復帰することができます。

もちろん他のPCで開いても同じように復帰することができます。

せっかく苦労して構築したデータベースがなかったことにならないためにも

こまめにファイルにして保存しておくことをおすすめします。

 

データベースファイル(wordDB.xml)の説明

前述のように、データベースはXMLの形を取っており、先ほどの「検索用データを保存する」ボタンから

その構造をそのまま保持したXMLファイルの形で保存することができます。

 

データベースXMLの構造は以下のようになっています。

データベースXMLの概略図

<root>
<word exp="カテゴリーの説明" label="カテゴリーの名称" type="・・・空白でけっこうです">
  <search comment="正規表現パターンの説明コメントです">......(正規パターン)</search>
  <search comment="次の正規表現パターンの説明です。">tekitou.++(正規パターン)</search>

  <search>....</search>

  <search>....</search>

  ...(以下searchが続く)
</word>
<word exp="別のカテゴリーの説明" label="別の以下略" type="以下同文">
  <search comment="同じ">tekitou3...(正規パターン)</search>

  ...(以下search)
</word>

<word>....</word>

<word>....</word>

...(以下wordが続く)
</root>

データベースXMLの構造はシンプルで、覚えるべき要素は<word> と<search>の二つだけです。

 

<word></word>はカテゴリーの要素です。

正規パターンを用途に応じて整理するためのカテゴリーの単位になります。

属性はexp(説明)、label(名称)、type(タイプ)の三つありますが、

expはカテゴリの説明となっており、選択すると情報表示エリアにexpの内容が表示されます。

typeは今のところ直接的に意味がありません。空白で結構です。(ぇ

labelの内容がカテゴリーの名称であり、登録済みワードの選択項目になります。

 

↓<word>のlabelが選択項目に反映される例

カテゴリ選択イメージ

 

<search></search>は正規パターンの要素です。

一つの要素の内容が登録された正規表現パターン一つに相当します。

属性はcomment(コメント)で、その要素の内容である正規表現パターンの説明になります。

<search>....</search>で囲われた....の内容が登録された正規表現パターンです。

一つ一つの正規表現パターンは、登録されているカテゴリーが選択されるとサーチワードリストに表示されます。

 

↓<search></search>の内容がリストに表示される例

サーチワードリストイメージ

 

直接XMLファイルを編集する

正規表現マスターは現状、カテゴリを追加するためには直接XMLファイルを編集する必要があります。

やり方としては、適当な<word>...</word>を丸ごとコピーして、<root></root>内に追加して編集するのが簡単です。

なお注意点として、正規表現パターンの内容に大なり小なり半角(<や>)や引用符('や")を入力すると、

文字参照に置き換えられたり、エラーになって読み込まれなくなってしまいます。

もしこれらを含んだパターンを登録したい場合は、正規表現マスター本体から登録する

<search>の内容をCDATAセクションで囲えばどんな文字を含んでいても登録できます。

例:<search><![CDATA[登録したい内容]]></search>

 

現時点のデータベースの内容表示と、初期化

worddbボタンイメージ

↑の「wordDB表示」ボタンを押せば現時点のデータベースXMLの内容がRESULTに表示されます。

XMLデータがそのまま表示されるので、ぶっちゃけそのままコピーして適当なメモ帳に貼り付けて名前つけて拡張子をxmlにすれば、本ツールから保存するファイルとほぼ同じものになります。(本ツールの保存はUTF8固定)

 

↑「wordDB初期化」ボタンを押すと、初期化するかどうかの確認ダイアログが出てきます。

「はい」を押すと、初期用のデータベースファイルが読み込まれ、初期の状態に戻ります。

エディタで編集していたら読み込まれなくなった~とか、遊んでたら台無しになった~とか

保存したファイルもなく、全てをなかったことにして白紙にしたいときの最終手段に使用します。

当然ですが現行のデータベースは完全に破棄されます。

 

なお初期化の際、読み込まれるデフォルトのデータベースXMLは以下↓のようになっています。

※2012年8月22日現在の初期データベースの内容 (改良募集中!)

<root>
<word exp="基本を制する者、文字列を制す" label="基本(メタ文字)" type="7">
<search comment="文字列の先頭に一致。mフラグ時、行の先頭にも一致。">^</search>
<search comment="文字列の末尾に一致。mフラグ時、改行直前にも一致。">$</search>
<search comment="任意の 1 文字に一致。改行には sフラグ時のみ一致。">.</search>
<search comment="直前の文字に 0 回以上の繰り返しに一致">*</search>
<search comment="直前の文字に 1 回以上の繰り返しに一致">+</search>
<search comment="直前の文字に 0 回または 1 回だけ一致">?</search>
<search comment="グループを定義。置換で$1など、$番号で指定可">()</search>
<search comment="abcdのどれか。[a-d]も同じ。[0-9][a-Z]等">[abcd]</search>
<search comment="「dead」か「alive」か。文字列でor。">dead|alive</search>
<search comment="n回の繰り返し">{n}</search>
<search comment="n回以上の繰り返し">{n,}</search>
<search comment="m回以上、n回以下の繰り返し">{m,n}</search>
</word>
<word exp="エスケープシーケンス。重・要" label="エスケープ文字" type="7">
<search comment="改行">\n</search>
<search comment="復帰文字">\r</search>
<search comment="タブ">\t</search>
<search comment="バックスペース">\b</search>
<search comment="[0-9]と同じ。10進数の数字。">\d</search>
<search comment="[^0-9]と同じ。10進数の数字以外。">\D</search>
<search comment="[a-zA-Z0-9_]と同じ。英数字とアンダースコア。">\w</search>
<search comment="[^a-zA-Z0-9_]と同じ。英数字とアンダースコア以外。">\W</search>
<search comment="[\n\r\t\f]と同じ。任意の空白文字">\s</search>
<search comment="[\n\r\t\f]と同じ。空白文字以外の任意の1文字">\S</search>
<search comment="一重引用符">\'</search>
<search comment="二重引用符">\"</search>
<search comment="単一の円記号">\\</search>
<search comment="改ページ">\f</search>
<search comment="垂直フィード文字(垂直タブ文字)に一致。">\v</search>
<search comment="16 進数値 nnnn の Unicode 文字。">\unnnn</search>
<search comment="16 進数値 nn のASCII 文字">\\xnn</search>
</word>
<word exp="全角・半角・カタカナ・ひらがな etc" label="文字系" type="">
<search comment="全角文字">[^\n -~。-゚]+</search>
<search comment="全角記号">[、-◯]+</search>
<search comment="全角ひらがな">[あ-んが-ぼぁ-ょゎっー]+</search>
<search comment="全角カタカナ">[ア-ンガ-ボァ-ョヮッー]+</search>
<search comment="半角文字">[ -~]+</search>
<search comment="漢字だけ">[亜-龠]+</search>
<search comment="半角カナ">[ヲ-゚]+</search>
<search comment="文字列の否定">(?!文字列).+</search>
<search comment="漢数字検索">[一二三四五六七八九十百千万億兆京垓]+</search>
</word>
<word exp="プログラマー用?" label="PC全般" type="1">
<search comment="16進数">\b0[xX][0-9a-fA-F]+\b</search>
<search comment="ファイルパス(windows)">\b[a-z]:\\[^/:*?"&lt;&gt;|\r\n]*</search>
<search comment="整数">\b\d+\b</search>
</word>
<word exp="WEBエンジニア用?" label="WEB系" type="1">
<search comment="URL">h?ttp://[\w\d/%#$&amp;?()~_.=+-]+</search>
<search comment="URLのファイル名(拡張子抜き)"><![CDATA[(?<=/)(?!.*/).+?(?=\.)]]></search>
<search comment="メールアドレス">[\w\d_-]+@[\w\d_-]+\.[\w\d._-]+</search>
<search comment="日付"><![CDATA[\d{4}[/年]\d{1,2}[/月]\d{1,2}日?]]></search>
<search comment="IPアドレス">\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b</search>
</word>
<word exp="その昔・・・ホムペはタグ打ちが基本だった" label="HTMLタグ" type="1">
<search comment="タグ全部"><![CDATA[<.*?>]]></search>
<search comment="リンク"><![CDATA[<a href.*?</a>]]></search>
<search comment="コメント">&lt;!--.*?--&gt;</search>
<search comment="テーブルタグ">&lt;table.*?&lt;/table&gt;</search>
<search comment="DIVタグ">&lt;div.*?&lt;/div&gt;</search>
</word>
<word exp="ご注文は今すぐフリーダイアルへ" label="電話番号" type="3">
<search comment="電話番号">\d{2,4}-\d{2,4}-\d{4}</search>
<search comment="携帯番号">(090|080|070)-\d{4}-\d{4}</search>
<search comment="フリーダイヤル">0120-\d+-\d+</search>
</word>
<word exp="楽天カード一択ですが何か?" label="クレジットカード" type="3">
<search comment="VISAカード">4[0-9]{12}(?:[0-9]{3})?</search>
<search comment="MASTERカード">5[1-5][0-9]{14}</search>
<search comment="ダイナーズクラブ">3(?:0[0-5]|[68][0-9])[0-9]{11}</search>
<search comment="アメリカンエクスプレス">3[47][0-9]{13}</search>
<search comment="ディスカバー">6011[0-9]{12}</search>
</word>
<word exp="どれにも属さない孤高の表現" label="その他" type="7"/>
<word exp="君だけのオリジナル超表現" label="お気に入り" type="8"/>
</root>