在Java regex.Pattern中设置两个标志

dav*_*ide 26 java regex unicode case-sensitive

我需要这样的匹配器:

Matcher kuchen = Pattern.compile("gibt es Kuchen in der K\u00FCche",Pattern.CASE_INSENSITIVE).matcher("");
Run Code Online (Sandbox Code Playgroud)

问题是它不是简单的ASCII.我知道在这种特殊情况下我可以使用[\ u00FC\u00DC]作为ü,但我需要更一般(从其他匹配器组构建正则表达式).所以根据javadocs:

默认情况下,不区分大小写的匹配假定只匹配US-ASCII字符集中的字符.通过将UNICODE_CASE标志与此标志一起指定,可以启用Unicode感知的不区分大小写的匹配.

任何人都可以告诉我如何同时指定两个标志?

Rom*_*n C 42

尝试

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

它应该解决这个问题.或者使用位掩码,您将获得复合功能.


Joo*_*gen 14

虽然使用参数更纯,"(?iu)gibt es ..."但没有参数.i=不区分大小写,u= unicode.


bar*_*uin 8

使用按位OR,就像Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE.


Seb*_*edl 6

它是一个位掩码,因此您使用按位OR运算符|.