パターン内の同様のテキストを考慮して preg_replace を実行しようとしています。私の目標は、OCR ソフトウェアによって出力されたテキストから特定の文字列を削除することです (一部の文字は混乱する可能性があります)。
コード例を挙げましょう:
$ocr = 'Appartamento sito in Vioolo San Vincenzo, n.4 e censito al ;
preg_replace('#\bVicolo San Vincenzo[, ]+([0-9]+|n[\.]? ?[0-9]+)?\b#', '<removed text>', $ocr);
注意: OCR は 3 番目の文字 ac
を と混同しましたo
。
ここでは、OCR を改善することはオプションではなく、可能でもありません。
入力文字列:
Appartamento sito in Vioolo San Vincenzo, n.4 e censito al
上記の preg_replace の呼び出し後に期待される結果:
Appartamento sito in e censito al
実結果:
Appartamento sito in Vioolo San Vincenzo, n.4 e censito al
levenshtein()
テキストは、 ,のような PHP 関数の意味で類似していると見なす必要がありますsimilar_texts()
(私は考慮していないsoundex()
かmetaphone()
、テキストが英語ではないため)。
使用preg_replace
は必須ではありませんが、少なくともそのパターンと同等のものに対して文字列を評価する機能が必要です。