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