Set two flags in Java regex.Pattern
Solution 1
Try
Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE
it should solve the issue. Or-ing the bitmask you will get compound features.
Solution 2
Though more pure using parameters, same as "(?iu)gibt es ..."
without parameters. i
= case-insensitive, u
= unicode.
Solution 3
Use bitwise OR, like Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE
.
Solution 4
It's a bitmask, so you use the bitwise OR operator |
.
Comments
-
davide about 2 years
I need a matcher like this:
Matcher kuchen = Pattern .compile("gibt es Kuchen in der K\u00FCche", Pattern.CASE_INSENSITIVE) .matcher("");
and the problem is that it is not simple ASCII. I know that in this particular case I could use
[\u00FC\u00DC]
for the ü, but I need to be a bit more general (building the regex from other matcher groups). So according to javadocs:By default, case-insensitive matching assumes that only characters in the US-ASCII charset are being matched. Unicode-aware case-insensitive matching can be enabled by specifying the UNICODE_CASE flag in conjunction with this flag.
Can anybody tell me how to specify the two flags in conjunction?