使用正则表达式android匹配/包含的字符串

时间:2019-02-06 19:29:51

标签: java android

我想匹配2个字符串

例如我有预定义的单词,例如小麦,鸡蛋,面粉等...

我从OCR得到了文本,例如wh3at,agg,f1Our等...

因此 wh3at 应该匹配小麦 f1Our 应该匹配面粉等。

1 个答案:

答案 0 :(得分:0)

我从事OCR项目的工作,在这些项目中我们对提取的文本进行了“规范化”。您可以构建与合理预期/观察到的输出匹配的正则表达式。

import java.util.regex.Pattern;

public class Regex {

    public static void main(String[] args) {

        String[] strings = {"wh3at", "f1Our", "f10ur", "agg"};

        for (String s : strings) 
            System.out.println(String.format("%s -> %s", s, normalizeWord(s)));
    }

    public static String normalizeWord(String unnormalized) {

        if (Pattern.compile("(?i)wh(e|3)at").matcher(unnormalized).matches()) {
            return "wheat";
        } else if (Pattern.compile("(?i)f(1|L)(O|0)ur").matcher(unnormalized).matches()) {
            return "flour";
        } else if (Pattern.compile("(?i)(a|e)gg").matcher(unnormalized).matches()) {
            return "egg";
        }
        return unnormalized;
    }
}