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

Java中的模式CANON_EQ字段和示例

CANON_EQ del Pattern viene abbinato a due caratteri solo quando due caratteri sono normativamente uguali. Quando questo valore viene utilizzato comecompile()Quando il valore di segno del metodo è impostato, due caratteri vengono abbinati e abbinati solo quando la loro decomposizione normativa completa è uguale.

La decomposizione normativa è una delle forme di normalizzazione del testo Unicode

Esempio 1

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";
      //Compilazione dell'espressione regolare
      Pattern pattern = Pattern.compile(regex, Pattern.CANON_EQ);
      //Ricerca dell'oggetto del matchatore
      Matcher matcher = pattern.matcher("\u1E03");
      if(matcher.matches()) {
         System.out.println("Corrispondenza trovata");
      }
         System.out.println("Corrispondenza non trovata");
      }
   }
}

Risultato di output

Corrispondenza trovata

Esempio 2

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";
      //Compilazione dell'espressione regolare
      Pattern pattern = Pattern.compile(regex, Pattern.CANON_EQ);
      //Ricerca dell'oggetto del matchatore
      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 + " è una corrispondenza per " + regex);
         }
            System.out.println(ele + " non è una corrispondenza per " + regex);
         }
      }
   }
}

Risultato di output

å è una corrispondenza per a?
a? non è una corrispondenza per a?
a? non è una corrispondenza per a?
a? è una corrispondenza per a?
a? non è una corrispondenza per a?
a? non è una corrispondenza per a?