"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment fonctionne la capture de groupes dans les expressions régulières Java ?

Comment fonctionne la capture de groupes dans les expressions régulières Java ?

Publié le 2024-11-17
Parcourir:903

How do Capturing Groups Work in Java Regular Expressions?

Comprendre les groupes de capture d'expressions régulières Java

Dans cet extrait de code, nous utilisons la bibliothèque d'expressions régulières (regex) de Java pour extraire des parties d'une chaîne. L'expression régulière est définie comme "(.)(\d )(.)", où :

  • (.*) : correspond à n'importe quel nombre de caractères avant le groupe suivant. .
  • (\d ) : correspond à n'importe quel nombre de chiffres après le groupe précédent.
  • (.*) : correspond à n'importe quel nombre de caractères après le groupe précédent. group.

Exécution de l'expression régulière

Lorsque l'expression régulière est exécutée sur la chaîne "Cette commande a été passée pour QT3000 ! OK ?", elle produit les résultats suivants :

Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT
Found value: 3000

Comprendre les quantificateurs gourmands

Le quantificateur par défaut utilisé dans l'expression régulière est gourmand, ce qui signifie qu'il correspond à autant de caractères que possible pour satisfaire le groupe suivant. Dans ce cas, ".*" correspond à la chaîne entière jusqu'à ce que le premier chiffre soit trouvé, ne laissant aucun caractère pour le troisième groupe.

Utilisation de quantificateurs réticents

Pour faire correspondre seulement les caractères nécessaires, on peut utiliser un quantificateur réticent, indiqué par un point d'interrogation. Remplacer "(.)" par "(.?)" correspond au moins de caractères possible, ce qui donne le résultat suivant :

Found value: This order was placed for QT3000! OK?
Found value: This order was placed for QT
Found value: 3000

Avantages de la capture de groupes

La capture de groupes nous permet d'extraire des parties spécifiques d'une chaîne correspondante pour une utilisation ultérieure. Dans cet exemple, nous pouvons accéder à la valeur correspondante de chaque groupe via la méthode "group()" de l'objet "Matcher", comme démontré dans l'extrait de code ci-dessous :

Pattern pattern = Pattern.compile("(.*?)(\\d )(.*)");
Matcher matcher = pattern.matcher(line);
if (matcher.find()) {
    System.out.println("group 1: "   matcher.group(1));
    System.out.println("group 2: "   matcher.group(2));
    System.out.println("group 3: "   matcher.group(3));
}
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3