English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Campo CANON_EQ del patrón en Java y ejemplos

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

Ejemplo1

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

Ejemplo2

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?