ogiso@ogiso.net「ひまわり」で正規表現を使った検索をするときのコツです。†モードを切り替えて「本文(grep)」で検索すればほとんどの正規表現が使えます。*1この場合、インデックスを使用しないので、検索速度は遅くなります。「ひまわり」で通常(本文)検索(インデックスを利用した検索)で使える正規表現は次のようになっています。通常の文字と列挙型の文字クラス。[らりるれろ]など)*2前文脈・後文脈で使える正規表現javaの正規表現ならすべて利用可能。https://docs.oracle.com/javase/jp/6/api/java/util/regex/Pattern.htmlキーに使える正規表現に制限があるのは、検索を速くするためのインデックスをプログラムが利用するためです。インデックスを利用するためにキーには確定した文字を指定する必要があります。三つの部分に分かれているので、それぞれに検索のための文字列をうまく割り振ることでさまざまな検索目的に対応します。文字種を指定するには大きく分けて二通りの方法があります。前後文脈ではUnicodeプロパティ、Unicodeブロックを使った文字指定ができます*4。https://www.unicode.org/Public/UNIDATA/Blocks.txthttps://www.unicode.org/charts/Unicodeプロパティを使うと文字クラスよりはっきりと文字種が指定できます。調べたい語に対応する正規表現を思いついても、それをそのままキーに入れて検索することができない場合があります(特にインデックスを利用した検索)。そんな場合には次のような工夫をして検索して下さい。†キーに入れられない正規表現を前後文脈に入れることでインデックスを利用した検索ができるようになる場合があります。例:漢語サ変動詞を検索する場合キー“[一-龠][一-龠]する”で検索しても(インデックスを利用した検索では)正しくヒットしません。前文脈“[一-龠][一-龠]”で終わる,キー“する”の二つに分ければ検索できます。三つの部分にどのように割り振るかがポイントになります。検索オプションの「前文脈を含む」「後文脈を含む」をうまく利用してください。一度には検索できない場合でも2回以上に分ければ検索できることがあります。検索結果を表計算ソフト(Excelなど)に貼り付けた下に、次々に新しい検索結果を貼り付けることで複数回分を一つのシートにまとめることができます。検索対象のデータによっては用意されていないかも。設定ファイルを自分で書き換えれば利用できます。文字クラス内の「-」はリテラル=文字通り解釈される。したがって[ら-ろ]は“ら”または“-”または“ろ”。Unicodeの範囲で指定するので[亜-熙]ではありません。