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

Metodo group() in Java con esempio

La classe java.util.regex.Matcher rappresenta l'engine che esegue varie operazioni di match. Questa classe non ha costruttore, può essere utilizzatamatches()Il metodo della classe java.util.regex.Pattern crea/ottiene un oggetto di questa classe.

Questo oggetto (Matcher)group()Il metodo restituisce la sequenza di input corrispondente durante l'ultimo match.

Esempio 1

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class GroupExample {
   public static void main(String[] args) {
      String str = "<p>This <b>è</b> un <b>esempio</b> HTML <b>script</b> "
         + "dove ogni parola <b>alternativa</b> è <b>grassetto</b>. "
         + "Anche contiene parole <i>corsivo</i></p>";
      //L'espressione regolare per abbinare il contenuto dei tag in grassetto
      String regex = "<b>(\\S+)</b>|<i>(\\S+)</i>";
      //Creare un'oggetto modello
      Pattern pattern = Pattern.compile(regex);
      //Corrispondenza della stringa con il modello compilato
      Matcher matcher = pattern.matcher(str);
      while (matcher.find()) {
         System.out.println(matcher.group());
      }
   }
}

Risultato di output

<b>è</b>
<b>esempio</b>
<b>script</b>
<b>ogni</b>
<b>parola</b>
<b>grassetto</b>
<i>anche</i>
<i>corsivo</i>

Un'altra variante di questo metodo accetta una variabile intera che rappresenta il gruppo, in cui i gruppi catturati sono indicizzati a partire da 1 (da sinistra a destra).

Esempio 2

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class GroupTest {
   public static void main(String[] args) {
      String regex = "(.*)(\\d+)(.*)";
      String input = "Questo è un testo di esempio, 1234, con numeri tra di loro.";
      //Creare un'oggetto modello
      Pattern pattern = Pattern.compile(regex);
      //Corrispondenza della stringa con il modello compilato
      Matcher matcher = pattern.matcher(input);
      if(matcher.find()) {
         System.out.println("Corrispondenza: "+matcher.group(0));
         System.out.println("Primo gruppo di corrispondenza: "+matcher.group(1));
         System.out.println("Secondo gruppo di corrispondenza: "+matcher.group(2));
         System.out.println("Terzo gruppo di corrispondenza: "+matcher.group(3));
      }
   }
}

Risultato di output

Corrispondenza: Questo è un testo di esempio, 1234, con numeri tra parentesi tonde.
Primo gruppo di corrispondenza: Questo è un testo di esempio, 123
Secondo gruppo di corrispondenza: 4
Terzo gruppo di corrispondenza: , con numeri tra parentesi tonde.