English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Sólo cuando dos caracteres normales son iguales, el campo CANON_EQ de la clase Pattern coincide con los dos caracteres. Cuando se utiliza este valor comocompile()
Cuando el valor de la bandera del método es, dos caracteres se coincidirán y solo cuando su descomposición normalizada completa sea igual se coincidirá.
La descomposición normalizada es una forma de normalización de texto Unicode
import java.util.regex.Matcher; import java.util.regex.Pattern; public class CANON_EQ_Example { public static void main( String args[] ) { String regex = "b\u0307"; //Compilar expresión regular Pattern pattern = Pattern.compile(regex, Pattern.CANON_EQ); //Buscar objeto de coincidencia Matcher matcher = pattern.matcher("\u1E03"); if(matcher.matches()) { System.out.println("Coincidencia encontrada"); } else { System.out.println("Coincidencia no encontrada"); } } }
Resultado de salida
Coincidencia encontrada
import java.util.regex.Matcher; import java.util.regex.Pattern; public class CANON_EQ_Example { public static void main( String args[] ) { String regex = "a\u030A"; //Compilar expresión regular Pattern pattern = Pattern.compile(regex, Pattern.CANON_EQ); //Buscar objeto de coincidencia String [] input = {\u00E5", "a\u0311", "a\u0325", "a\u030A", "a\u1E03", "a\uFB03" }; for (String ele : input) { Matcher matcher = pattern.matcher(ele); if(matcher.matches()) { System.out.println(ele+" es una coincidencia para "+regex); } else { System.out.println(ele+" no es una coincidencia para "+regex); } } } }
Resultado de salida
a? es una coincidencia para a? a? no es una coincidencia para a? a? no es una coincidencia para a? a? es una coincidencia para a? a? no es una coincidencia para a? a? no es una coincidencia para a?