【问题标题】:How to ignore diacritics with a regex in Android 2.2?如何在 Android 2.2 中使用正则表达式忽略变音符号?
【发布时间】:2012-08-16 18:47:17
【问题描述】:

我需要使用 Android 2.2 (API 8),我发现 Normalizer.normalize(text, Normalizer.Form.NFD) 仅适用于 Android API 9。

我可以在我的正则表达式中添加什么来忽略重音符号?

SpannableStringBuilder stringBuilder = new SpannableStringBuilder(text);

for (String keyword : keywords.keySet()) {

    String caseInsensitiveRegex = "(?i)\\b" + keyword + "\\b";
    Pattern pattern = Pattern.compile(caseInsensitiveRegex);
    Matcher m = pattern.matcher(stringBuilder);

    while (m.find()){

        // Do some stuff

    }

}

感谢您的帮助;)

【问题讨论】:

    标签: android diacritics


    【解决方案1】:

    仅适用于 Android API 9

    Android 是开源项目。没有什么可以阻止您获取 API 9 的那部分并直接放入您的应用程序中,因此您将不再依赖 API,我目前在您的情况下没有看到任何障碍。

    【讨论】:

    • 我不同意这种回答。如果像你说的那么简单,每个人都将使用 API 级别 1 和最新 API 的代码来兼容所有 android 的版本。正如我在 Google PlayStore 上看到的那样,几乎所有应用程序都与 API 级别 1 不兼容;)无论如何,如果它很简单,在这种情况下,获取我想要使用的 API9 部分,我期待的答案这是 API9 的一部分。
    • 这个答案没什么不好。许多模块可以很容易地向后移植——当然,并不是因为缺少 API,但是一旦你获得了所有东西的来源,你基本上就可以做到这一点(然而,你需要投入的工作量有时可能很高)
    猜你喜欢
    • 2012-07-24
    • 1970-01-01
    • 2014-03-27
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 2022-12-31
    相关资源
    最近更新 更多