「ひまわり」正規表現検索のコツ

小木曽 ogiso@ogiso.net

「ひまわり」で正規表現を使った検索をするときのコツです。Ver.1.2用です。

「ひまわり」で使える正規表現

「ひまわり」で検索に使える正規表現は次のようになっています。

検索文字列(キー)に使える正規表現
通常の文字と列挙型の文字クラス。([国國] [らりるれろ]など)*1
前文脈・後文脈で使える正規表現
javaの正規表現ならすべて利用可能。
(範囲指定型の文字クラス[ら-ろ] や 文字クラスの否定[^国國][^ら-ろ]ももちろん可)
参考URL http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/regex/Pattern.html

キーに使える正規表現に制限があるのは、検索を速くするためのインデックスをプログラムが利用するためです。インデックスを利用するためにキーには確定した文字を指定する必要があります。

キー・前文脈・後文脈の三つの部分に分かれているので、それぞれに検索のための文字列をうまく割り振ることでさまざまな検索目的に対応します。

テクニック

調べたい語に対応する正規表現を思いついても、それをそのままキーに入れて検索することができない場合があります。そんな場合には次のような工夫をして検索して下さい。

キーと前後文脈にうまく分けてやる

キーに入れられない正規表現を前後文脈に入れることで検索できるようになる場合があります。

キー・前文脈・後文脈の三つの部分にどのように割り振るかがポイントになります。

無理をしないで2回以上に分ける

一度には検索できない場合でも2回以上に分ければ検索できることがあります。

検索結果を表計算ソフト(Excelなど)に貼り付けた下に、次々に新しい検索結果を貼り付けることで複数回分を一つのシートにまとめることができます。

力業

前後文脈での字種指定

文字種を指定するには大きく分けて二通りの方法があります。

  1. 文字クラスによる字種指定
    [ぁ-ん]ひらがな
    [ァ-ヴ]カタカナ
    [一-龠]*2漢字(JIS X0208内)
    [0-9]半角数字
    [A-Za-z]半角アルファベット
  2. Unicodeプロパティ、Unicodeブロックによる字種指定

10007


*1 文字クラス内の「-」はリテラル=文字通り解釈される。したがって[ら-ろ]は“ら”または“-”または“ろ”。
*2 Unicodeの範囲で指定するので[亜-熙]ではありません。
*3 Unicodeスクリプトは使えません

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS