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

Champ CANON_EQ du modèle en Java et exemple

Seulement lorsque les deux normes de caractères sont égales, le champ CANON_EQ de la classe Pattern correspond aux deux caractères. Lorsque cette valeur est utilisée commecompile()Lorsque le drapeau de la méthode est utilisé, deux caractères seront correspondants, et uniquement si leur décomposition canonique complète est égale.

La décomposition canonique est une forme de normalisation du texte Unicode

Exemple1

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";
      //Compilation de l'expression régulière
      Pattern pattern = Pattern.compile(regex, Pattern.CANON_EQ);
      //Recherche de l'objet de l'matcher
      Matcher matcher = pattern.matcher("\u1E03");
      if(matcher.matches()) {
         System.out.println("Correspondance trouvée");
      } else {
         System.out.println("Correspondance non trouvée");
      }
   }
}

Résultat de la sortie

Correspondance trouvée

Exemple2

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";
      //Compilation de l'expression régulière
      Pattern pattern = Pattern.compile(regex, Pattern.CANON_EQ);
      //Recherche de l'objet de l'matcher
      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+" est une correspondance pour "+regex);
         } else {
            System.out.println(ele+" n'est pas une correspondance pour "+regex);
         }
      }
   }
}

Résultat de la sortie

å est une correspondance pour a?
a? n'est pas une correspondance pour a?
a? n'est pas une correspondance pour a?
a? est une correspondance pour a?
a? n'est pas une correspondance pour a?
a? n'est pas une correspondance pour a?