Package com.nefrock.edgeocr
Class FuzzyRegex
java.lang.Object
com.nefrock.edgeocr.FuzzyRegex
曖昧正規表現マッチングを提供するクラスです。
入力文字列に対してファジー正規表現によるマッチングを行い、 マッチ結果(正規化やキャプチャ連結を含む)を返します。
使用例:
// 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 -
Constructor Summary
ConstructorsConstructorDescriptionFuzzyRegex(String pattern, FuzzyRegex.FuzzyType fuzzyType, float threshold) 曖昧正規表現インスタンスを作成します。 -
Method Summary
Modifier and TypeMethodDescriptionvoidこのインスタンスが保持するネイティブリソースを解放します。入力文字列に対してマッチングを行い、結果文字列を返します。 マッチしない場合はnullを返します。 パターンに名前付きキャプチャ(例:(?<a1>...))が1つ以上ある場合は、 名前付きキャプチャの内容を連結した文字列を返します。 連結順はキャプチャ名の辞書順です(宣言順ではありません)。 名前付きキャプチャが無い場合は、マッチした文字列(全体一致)を返します。 曖昧マッチ有効時は OCR 由来の揺れを補正した正規化結果を返すことがあります (例:C0DE -> CODE, 全角英数字/記号の正規化など)。
-
Constructor Details
-
FuzzyRegex
曖昧正規表現インスタンスを作成します。- Parameters:
pattern- 正規表現パターンfuzzyType- マッチングモードthreshold- NN モードで使用するしきい値(通常は 0.0〜1.0)
-
-
Method Details
-
dropFuzzyRegex
public void dropFuzzyRegex()このインスタンスが保持するネイティブリソースを解放します。 -
match
入力文字列に対してマッチングを行い、結果文字列を返します。- マッチしない場合は
nullを返します。 - パターンに名前付きキャプチャ(例:
(?<a1>...))が1つ以上ある場合は、 名前付きキャプチャの内容を連結した文字列を返します。 連結順はキャプチャ名の辞書順です(宣言順ではありません)。 - 名前付きキャプチャが無い場合は、マッチした文字列(全体一致)を返します。
- 曖昧マッチ有効時は OCR 由来の揺れを補正した正規化結果を返すことがあります
(例:
C0DE -> CODE, 全角英数字/記号の正規化など)。
- Parameters:
text- マッチング対象の文字列- Returns:
- マッチング結果(マッチしない場合は
null)
- マッチしない場合は
-