Java正则表达式:非英语字符的不区分大小写匹配

Dar*_*hta 1 java regex locale pattern-matching

我试图执行情况与不敏感的匹配PatternMatcherJava类,为俄语.以下是文字:

"some text ???????????? ???????? some other text"
Run Code Online (Sandbox Code Playgroud)

下面是我用来匹配文本的模式:

Pattern pattern = Pattern.compile("(?iu)\\b(" + Pattern.quote("???????") + ")\\b", Pattern.UNICODE_CHARACTER_CLASS);
Run Code Online (Sandbox Code Playgroud)

我期待以下内容返回,true因为它是一个不区分大小写的比较(???????vs ????????):

System.out.println(pattern.matcher("some text ???????????? ???????? some other text").find());
Run Code Online (Sandbox Code Playgroud)

但它总是回归false.我曾与其他试图Pattern常数(如CASE_INSENSITIVE,UNICODE_CASE,CANON_EQ),但是,它仍然返回false.

Java中有没有办法进行这样的比较?它甚至可能吗?

Vit*_*liy 7

只需在模式中添加此选项:

Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE
Run Code Online (Sandbox Code Playgroud)

这在我的所有情况下都适用于cyrrilic.我非常广泛地使用它.