現在、当サイト「mozilla.org 日本語版」の和訳文書は更新されておらず、mozilla.org の原文 よりも内容が古くなっている可能性があります。ご不便をお掛けしますが、最新の情報は原文をご確認ください。



検索ヘルプ

mozilla クロスレファレンス用


この文書は Glimpse マニュアルページから派生されたものです。LXR 検索には当てはまらない事項については削除しようとしましたが、抜け落ちている部分があるかもしれませんので、お気をつけください。時間を見つけて、より良くまとめたものにしようと思います。Glimpse についてのより詳しい情報は、Glimpse ホームページを参照してください。

パターン

    Glimpse は、単純な文字列、キャラクタクラスを持つ文字列、文字列のセット、ワイルドカード、そして正規表現(制限事項を参照)を含めて、多様なパターンをサポートしています。

文字列

    文字列は、行頭を示す特別なシンボル「^」および行末を示す「$」を含んだ、任意の文字の並びです。次に挙げる特別な文字(「$」、「^」、「*」、「[」、「^」、「|」、「(」、「)」、「!」、および 「\」)、並びに以下の Glimpse に特有のメタ文字(および agrep)(「;」、 「、」、 「#」、 「>」、 「<」、 「-」、 および 「.」)は、通常の文字として一致させたい場合には、「\」 の後ろに置かれる必要があります。例えば、\^abc\\\\ は文字列 ^abc\\ に対応するのに対し、^abc はラインの始めの文字列 abc に対応します。

文字クラス

    [] (この順番で)内の文字の連なりは、リストからのあらゆる文字に対応します。例えば、[a-ho-z] は a および h、または o および z の間にあるあらゆる文字に対応します。[] 内のシンボル 「^」 は、リストを補足します。例えば、[^i-n] は、文字 「i」 から 「n」 までを除く文字セット内のあらゆる文字を示します。このように、シンボル「^」は二つの意味を持ちますが、これは egrep と同様のものです。 シンボル 「.」 (ワイルドカード)は、(改行コードを除く)あらゆるシンボルを示します。

ブール演算

    Glimpse は、シンボル「;」に示される「AND」演算、シンボル「,」で示される「OR」演算、シンボル「~」で示される「NOT」演算の(version 4.0B1 からはじまる)限定バージョン、またはそれらの組み合わせをサポートしています。例えば、「pizza;cheeseburger」は両方のパターンを含むすべての連なり(ライン)を出力します。「{political,computer};science」は「political science」または「science of computers」を返します。

ワイルドカード

    シンボル「#」は、任意の文字の(0 を含む)あらゆる数字の連鎖を示すために使用されます(制限事項を参照)。シンボル # は egre における .* に相当します。実際、.* も作動します。というのも、.* は正しい正規表現だからです(下記を参照)。ただし、実際の正規表現の一部でない限り、# のほうが早く結果を返します。(現在の Glimpse は # に問題があります。)

完全一致とあいまい検索の組み合わせ

    角括弧 <> 内のあらゆるパターンは、その検索結果にエラーが含まれていたとしても、完全に同一なテキストを検索します。例えば、<mathemat>ics は、(最後の s を a で置き換えた)一つのエラーを持つ mathematical を返します。ただし、mathe<matics> は、どれだけ多くのエラーが許容されようと、mathematical を返すことはありません。(このオプションは、現在バグを抱えています。)

正規表現

    インデックスは語(word)ベースのため、正規表現は、Glimpse が見つけられるインデックス内に現れる語を返します。Glimpse は初めに、すべての非アルファベット文字を正規表現から削ぎ落とし、それから残ったすべての語についてインデックスを検索します。そして、正規表現マッチングアルゴリズムをインデックス内に見つかったファイルに適用します。例えば、Glimpse 「abc.*xyz」は、「abc」および「xyz」の両方を含むすべてのファイルに対してインデックスを検索し、それからそうしたファイル内の「abc.*xyz」を直接検索します。(Glimpse -w 「abc.*xyz」を使用した場合は、「abcxyz」は見つかりません。なぜなら Glimpse は abc および xyz が語全体が一致する必要があると判断するからです。)Glimpse 内の正規表現のシンタックスは、一般的に agrep のシンタックスと同様のものです。共用演算「|」、Kleene クロージャ「*」、そして括弧 () はすべてサポートされています。現在「+」はサポートされていません。正規表現は現在、約 30 文字までに制限されています(一般的にメタ文字は除かれます)。「*」または「|」を使用する正規表現におけるエラーの最大数は、4 です。

制限事項

    Glimpse のインデックスは、語(word)ベースです。一語以上を含むパターンはインデックス内で見つけることはできません。Glimpse がこの弱点を克服する方法は、複合語パターンを語のセットに分割し、インデックス内でそのすべてを検索するというものです。例えば、「linear programming」では、はじめにインデックスを参照し linear および programming の両方を含むすべてのファイルを探します。そして、 agrep を適用して組み合わせパターンを探します。これは通常、効果的な解決方法ですが、両方の語が非常に一般的なものでありながら、組み合わせが一般的でない場合、検索が遅くなる可能性があります。

    上記パターンで言及したように、文字によっては Glimpse のメタ文字として機能するものがあり、検索のためには「\\」の後ろに置く必要があるものがあります。最も一般的な例は、(ワイルドカードを意味する)文字「.」および(Kleene クロージャを意味する)「*」です。そのため、"glimse ab*de" は abcde を返しますが、"glimpse ab\\.de" は abcde を返しません。しかし、"glimpse ab\\*de" は abcde を返します。メタ文字 - は、[] (この場合、文字のレンジを表す)の間に現れない限り、自動的にハイフンとみなされます。

    単純パターンおよびブール演算内の単純パターンに対して、サイズ制限はありません。正規表現のように、それよりも複雑なパターンは、現在のところ約 30 文字に制限されています。一行は 1024 文字に制限されています。


Arne Georg Gleditsch and Per Kristian Gjermshus