我正在尝试使用 Java 中的 Pattern
和 Matcher
类针对俄语执行不区分大小写的匹配。以下为正文:
"some text газированных напитков some other text"
下面是我用来匹配文本的模式:
Pattern pattern = Pattern.compile("(?iu)\\b(" + Pattern.quote("напитки") + ")\\b", Pattern.UNICODE_CHARACTER_CLASS);
我期望以下返回 true
,因为它是不区分大小写的比较(напитки
vs напитков
):
System.out.println(pattern.matcher("some text газированных напитков some other text").find());
但它总是返回false
。我尝试使用其他 Pattern
常量(如 CASE_INSENSITIVE
、UNICODE_CASE
、CANON_EQ
),但是,它仍然返回 假
。
Java 中有什么方法可以进行这种比较吗?有可能吗?
最佳答案
只需在您的模式中添加此选项:
Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE
这在我所有的西里尔语案例中都有效。我非常广泛地使用它。
关于Java 正则表达式 : Case insensitive matching for non English characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43737308/