我正在尝试使用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中有没有办法进行这样的比较?这是否有可能呢?
\\b
at end might be cause offalse
since there is a character afterнапитки
. Since your regex is\bнапитки\b
there is no match for part ofнапитков
- Rahulи
!=ов
。 - Wiktor Stribiżew