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

Méthode group() de Matcher dans Java avec exemple

La classe java.util.regex.Matcher représente le moteur d'exécution des opérations de correspondance variées. Cette classe n'a pas de constructeur, et peut être utiliséematches()La méthode de la classe java.util.regex.Pattern créer/Obtenir l'objet de cette classe.

Cette classe (Matcher)group()La méthode renvoie la sous-séquence d'entrée correspondante lors du dernier match.

Exemple1

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class GroupExample {
   public static void main(String[] args) {
      String str = "<p>This<b>is</b>un<b>example</b>HTML<b>script</b>"
         + "where<b>every</b>alternative<b>word</b>est<b>bold</b>"
         + "It<i>also</i>contient<i>italic</i>words</p>";
      //L'expression régulière correspond à la contenu des balises en gras
      String regex = "<b>(\\S+);/b>|<i>(\\S+);/i>";
      //Création d'un objet modèle
      Pattern pattern = Pattern.compile(regex);
      //Correspondance de la chaîne avec le modèle compilé
      Matcher matcher = pattern.matcher(str);
      while (matcher.find()) {
         System.out.println(matcher.group());
      }
   }
}

Résultat de la sortie

<b>est</b>
<b>example</b>
<b>script</b>
<b>every</b>
<b>word</b>
<b>bold</b>
<i>also</i>
<i>italic</i>

Une autre variation de cette méthode accepte une variable entière représentant le groupe, où le groupe capturé1(de gauche à droite) l'indice de début.

Exemple2

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class GroupTest {
   public static void main(String[] args) {
      String regex = "(.*);+);*);
      String input = "This is a sample Text", 1234, avec des nombres entre les guillemets.";
      //Création d'un objet modèle
      Pattern pattern = Pattern.compile(regex);
      //Correspondance de la chaîne avec le modèle compilé
      Matcher matcher = pattern.matcher(input);
      if(matcher.find()) {
         System.out.println("match : ",+matcher.group(0));
         System.out.println("Match du premier groupe : ",+matcher.group(1)) ;
         System.out.println("Match du deuxième groupe : ",+matcher.group(2)) ;
         System.out.println("Match du troisième groupe : ",+matcher.group(3)) ;
      }
   }
}

Résultat de la sortie

match : Ce texte est un exemple , 1234, avec des nombres entre les guillemets.
Match du premier groupe : Ce texte est un exemple , 123
Match du deuxième groupe : 4
Match du troisième groupe : , avec des nombres entre les guillemets.