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

Méthode reset() de Matcher en Java avec exemple

Lede java.util.regex.MatcherCette classe représente un moteur, effectuant diverses opérations de correspondance. Cette classe n'a pas de constructeur, et elle peut être utiliséematches()La méthode de création de l'objet Pattern de la classe java.util.regex./Obtenir l'objet de cette classe.

Dansreset()Les méthodes de cette classe (Matcher) suppriment toutes les informations d'état et réinitialisent la séquence de caractères à la valeur par défaut, en ajoutant la position à zéro.

Exemple1

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Reset {
   public static void main(String[] args) {
      String str = "<p>This <b>est</b>"/b>un <b>exemple</b>/b>HTML <b>script</b>/b>où <b>chaque</b>/b>mot alternatif <b>mot</b>/b>est <b>gras</b>/b></p>";
      //Correspondance des expressions régulières pour le contenu des balises en gras
      String regex = "<b>(\\S+)</b>";
      //Créer un objet modèle
      Pattern pattern = Pattern.compile(regex);
      //Matcher les motifs déjà compilés dans la chaîne
      Matcher matcher = pattern.matcher(str);
      while (matcher.find()) {
         System.out.println("Etat du matcher : ")+matcher.toMatchResult());
         String result = matcher.group(1);
      }
      matcher = matcher.reset();
      System.out.println("État du matcher après le réinitialisation : "+matcher.toMatchResult());
   }
}

Résultat de la sortie

État du matcher : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>is</b>]
État du matcher : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>example</b>]
État du matcher : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>script</b>]
État du matcher : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>every</b>]
État du matcher : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>>mot</b>/b>]
État du matcher : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>bold</b>]
État du matcher : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=]
État du matcher après le réinitialisation : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=]

Cette autre variante de la méthode accepte des données de chaîne et utilise celles-ci pour réinitialiser le Matcher.

Exemple2 

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Reset {
   public static void main(String[] args) {
      String str = "<p>This <b>est</b>"/b>un <b>exemple</b>/b>HTML <b>script</b>/b>où <b>chaque</b>/b>mot alternatif <b>mot</b>/b>est <b>gras</b>/b></p>";
      //Correspondance des expressions régulières pour le contenu des balises en gras
      String regex = "(\\S+);
      //Créer un objet modèle
      Pattern pattern = Pattern.compile(regex);
      //Matcher les motifs déjà compilés dans la chaîne
      Matcher matcher = pattern.matcher(str);
      while (matcher.find()) {
         System.out.println("Etat du matcher : ")+matcher.toMatchResult());
         String result = matcher.group(1);
      }
      matcher = matcher.reset("<b>this</b> est <b>new</b> string <b>after</b> reset");
      while (matcher.find()) {
         System.out.println("État du matcher après le réinitialisation : "+matcher.toMatchResult());
      }
   }
}

Résultat de la sortie

État du matcher : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>is</b>]
État du matcher : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>example</b>]
État du matcher : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>script</b>]
État du matcher : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>every</b>]
État du matcher : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>word</b>]
État du matcher : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>bold</b>]
État du matcher après le réinitialisation : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>51 lastmatch=<b>this</b>]
État du matcher après le réinitialisation : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>51 lastmatch=<b>new</b>]
État du matcher après le réinitialisation : java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>51 lastmatch=<b>after</b>]