Class FuzzyRegex

java.lang.Object
com.nefrock.edgeocr.FuzzyRegex

public class FuzzyRegex extends Object
曖昧正規表現マッチングを提供するクラスです。

入力文字列に対してファジー正規表現によるマッチングを行い、 マッチ結果(正規化やキャプチャ連結を含む)を返します。

使用例:

 // 1) 単純なファジーマッチ
 FuzzyRegex fr = new FuzzyRegex("CODE", FuzzyRegex.FuzzyType.DEFAULT, 1.0f);
 String result1 = fr.match("C0DE");
 // -> "CODE"(OCR誤認識の補正)

 // 2) 名前付きキャプチャの連結
 FuzzyRegex fr2 = new FuzzyRegex("(?<a2>AB)(?<a1>12)", FuzzyRegex.FuzzyType.DEFAULT, 1.0f);
 String result2 = fr2.match("AB12");
 // -> "12AB"(キャプチャ名の辞書順連結)

 // 3) マッチしない場合
 String result3 = fr.match("XYZ");
 // -> null
 
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    ファジー検索の種類を定義する列挙型です。
  • Constructor Summary

    Constructors
    Constructor
    Description
    FuzzyRegex(String pattern, FuzzyRegex.FuzzyType fuzzyType, float threshold)
    曖昧正規表現インスタンスを作成します。
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    このインスタンスが保持するネイティブリソースを解放します。
    match(String text)
    入力文字列に対してマッチングを行い、結果文字列を返します。 マッチしない場合は null を返します。 パターンに名前付きキャプチャ(例: (?<a1>...))が1つ以上ある場合は、 名前付きキャプチャの内容を連結した文字列を返します。 連結順はキャプチャ名の辞書順です(宣言順ではありません)。 名前付きキャプチャが無い場合は、マッチした文字列(全体一致)を返します。 曖昧マッチ有効時は OCR 由来の揺れを補正した正規化結果を返すことがあります (例: C0DE -> CODE, 全角英数字/記号の正規化など)。

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • FuzzyRegex

      public FuzzyRegex(String pattern, FuzzyRegex.FuzzyType fuzzyType, float threshold)
      曖昧正規表現インスタンスを作成します。
      Parameters:
      pattern - 正規表現パターン
      fuzzyType - マッチングモード
      threshold - NN モードで使用するしきい値(通常は 0.0〜1.0)
  • Method Details

    • dropFuzzyRegex

      public void dropFuzzyRegex()
      このインスタンスが保持するネイティブリソースを解放します。
    • match

      public String match(String text)
      入力文字列に対してマッチングを行い、結果文字列を返します。
      • マッチしない場合は null を返します。
      • パターンに名前付きキャプチャ(例: (?<a1>...))が1つ以上ある場合は、 名前付きキャプチャの内容を連結した文字列を返します。 連結順はキャプチャ名の辞書順です(宣言順ではありません)。
      • 名前付きキャプチャが無い場合は、マッチした文字列(全体一致)を返します。
      • 曖昧マッチ有効時は OCR 由来の揺れを補正した正規化結果を返すことがあります (例: C0DE -> CODE, 全角英数字/記号の正規化など)。
      Parameters:
      text - マッチング対象の文字列
      Returns:
      マッチング結果(マッチしない場合は null