test regular pattern online one example java regex unicode case-sensitive

regular - Establecer dos banderas en Java regex.Pattern



regex one (4)

Necesito un matcher como este:

Matcher kuchen = Pattern.compile("gibt es Kuchen in der K/u00FCche",Pattern.CASE_INSENSITIVE).matcher("");

Y el problema es que no es simple ASCII. Sé que en este caso particular, podría usar [/ u00FC / u00DC] para la ü, pero necesito ser un poco más general (compilación de la expresión regular de otros grupos de emparejadores). Así que según javadocs :

De forma predeterminada, la coincidencia que no distingue entre mayúsculas y minúsculas asume que solo se comparan los caracteres en el conjunto de caracteres US-ASCII. La coincidencia entre mayúsculas y minúsculas que reconoce Unicode se puede habilitar especificando el indicador UNICODE_CASE junto con este indicador.

¿Alguien puede decirme cómo especificar las dos banderas en conjunto?


Aunque es más puro usando parámetros, igual que "(?iu)gibt es ..." sin parámetros. i = no distingue entre mayúsculas y minúsculas, u = unicode.


Es una máscara de bits, por lo que utiliza el operador OR a nivel de bits | .


Tratar

Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE

Debería resolver el problema. O bien, la máscara de bits obtendrá características compuestas.


Use OR en modo bit, como Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE .