Les opérations qui peuvent utiliser des expressions régulières sur String utilisent en fait les fonctions de java.util.regex.Pattern et java.util.regex.Matcher. Lors de l'appel de la méthode matches() de String, elle appelle en fait la méthode statique matches() de Pattern. Cette méthode renvoie une valeur booléenne indiquant si la chaîne correspond à l'expression régulière.
Si vous souhaitez traiter l'expression régulière comme un objet à réutiliser, vous pouvez utiliser la méthode statique compile() de Pattern pour la compiler. La méthode compile() renverra une instance de Pattern, qui représente une expression régulière. Vous pouvez ensuite réutiliser la méthode matcher() de l'instance de Pattern pour renvoyer une instance de Matcher, qui représente une instance qui correspond à l'expression régulière. sur cette instance, les méthodes qui répondent aux conditions d’expression régulière sont disponibles pour l’exploitation. L'exemple 6.11 le démontre.
** Exemple 6.11UsePatternMatcher.java
importer java.util.regex.* ;
classe publique UsePatternMatcher {
public static void main (String[] arguments) {
Téléphones à chaîne1 =
"Numéro de portable de Justin : 0939-100391n" +
"Numéro de téléphone portable de la maman : 0939-666888n" ;
Modèle de motif = Pattern.compile(".*0939-\d{6}");
Matcher matcher = pattern.matcher(phones1);
while(matcher.find()) {
System.out.println(matcher.group());
}
Téléphones à chaîne2 =
"Numéro de téléphone portable de Caterpillar : 0952-600391n" +
« numéro de téléphone portable de Bush : 0939-550391 » ;
matcher = pattern.matcher(téléphones2);
while(matcher.find()) {
System.out.println(matcher.group());
}
}
}
L'exemple 6.11 recherchera les nombres commençant par 0939. En supposant que les nombres proviennent de plusieurs sources (telles que téléphones1, téléphones2), vous pouvez compiler l'expression régulière et renvoyer un objet Pattern. Vous pouvez ensuite réutiliser cet objet Pattern lors de la comparaison. Utilisez matcher() pour renvoyer les instances Matcher correspondantes. La méthode find() indique s'il existe une chaîne correspondante et la méthode group() peut renvoyer la chaîne correspondante. Les résultats d'exécution du programme sont les suivants :
Numéro de portable de Justin : 0939-100391
Numéro de téléphone portable de maman : 0939-666888
Numéro de téléphone portable de Bush : 0939-550391
Réécrivons l'exemple 6.9 en utilisant Pattern et Matcher afin que le programme puisse renvoyer des chaînes qui correspondent à l'expression régulière au lieu de renvoyer des chaînes qui ne correspondent pas.
** Exemple 6.12RegularExpressionDemo2.java
importer java.util.regex.* ;
classe publique RegularExpressionDemo2 {
public static void main (String[] arguments) {
Texte de chaîne = "abcdebcadxbc" ;
Modèle de modèle = Pattern.compile(".bc");
Matcher matcher = motif.matcher(texte);
while(matcher.find()) {
System.out.println(matcher.group());
}
System.out.println();
}
}
style='font-family:宋体'>Résultats de l'exécution :
abc
EBC
xbc
Cet article provient du blog CSDN Veuillez indiquer la source lors de la réimpression : http://blog.csdn.net/wofe912/archive/2009/12/18/5030571.aspx.