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ù :
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));
}
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