Skip to main content
正規表現は、正規表現ベースの辞書で、ある言語で使用を許可する単語と許可しない単語を定義するために使用されます。

正規表現のルール

ABBYY FineReader Engine で使用される正規表現のアルファベットを、次の表に示します。
  • 正規表現で使われる文字の一部は「補助文字」です。つまり、システム上の目的で使用されます。上の一覧からわかるように、このような文字には角括弧やピリオドなどがあります。補助文字を通常の文字として入力するには、その前にバックスラッシュ () を付けます。例: [t-v]x+ は “tx”、“txx”、“txxx” などや、“ux”、“uxx” などを表します。一方、[t-v]x+ は “[t-v]x”、“[t-v]xx”、“[t-v]xxx” などを表します。 - 特定の正規表現要素をグループ化する必要がある場合は、丸括弧を使用します。たとえば、(a|b)+|c は “c” と、“abbbaaabbb”、“ababab” などの任意の組み合わせを表します (0 文字ではない任意の長さの単語で、a と b を任意の順序で任意の数だけ含むもの)。一方、a|b+|c は “a”、“c”、および “b”、“bb”、“bbb” などを表します。

正規表現の例

日付の正規表現 日を表す数値は 1 桁 (例: 1、2 など) または 2 桁 (例: 02、12) にできますが、ゼロ (00 または 0) にはできません。したがって、日の正規表現は次のようになります: ((|0)[1-9])|([12][0-9])|(30)|(31). 月の正規表現は次のようになります: ((|0)[1-9])|(10)|(11)|(12). 年度の正規表現は次のようになります: (((19)|(20))[0-9][0-9])|([0-9][0-9]). あとは、これらをすべて組み合わせて、数値をピリオドで区切るだけです (例: 1.03.1999) 。ピリオドは補助記号なので、その前にバックスラッシュ () を付ける必要があります。完全な日付の正規表現は次のようになります: (((|0)[1-9])|([12][0-9])|(30)|(31)).(((|0)[1-9])|(10)|(11)|(12)).((((19)|(20))[0-9][0-9])|([0-9][0-9])) メールアドレスの正規表現 メールアドレスを表すためのパターンも簡単に作成できます。メールアドレスの正規表現は次のようになります: [a-zA-Z0-9_-.]+@[a-zA-Z0-9.-]+.[a-zA-Z]+

データキャプチャでの使用

field レベルの認識で正規表現を使用する場合、通常は正規表現に完全一致する単語のみを認識すれば十分です。この場合は、field を認識するための別個の言語を作成し、その言語に対して次のプロパティを設定することをお勧めします。
  1. 認識結果として辞書内の単語のみを許可する必要があります: IBaseLanguage::AllowWordsFromDictionaryOnly プロパティを TRUE に設定します。これは完全一致を実現するために必要です。
  2. 認識言語の文字セットには、正規表現に含まれている文字だけを含める必要があります: IBaseLanguage::LetterSet プロパティを指定します。これは、正規表現に一致しない場合でも、その言語のアルファベットに含まれる文字が認識される可能性があるためです。
  3. IBaseLanguage::IsNaturalLanguage プロパティを FALSE に設定します。

Windows サンプル

関連項目

辞書の使用 RegExpDictionaryDescription