我正在尝试使用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
),但仍会返回false
。
Java中有没有办法进行这样的比较?甚至可能吗?
答案 0 :(得分:5)
只需在模式中添加此选项:
Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE
这适用于我所有的cyrrilic病例。我非常广泛地使用它。
答案 1 :(得分:0)
这将正常工作:
Pattern pattern = Pattern.compile("(?iu)\\b(" + Pattern.quote("напитк") + ")\\b");
System.out.println(pattern.matcher("some text газированных \"напитк\"ов some other text").find());