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

Java中的Matcher reset()方法与示例

Questajava.util.regex.MatcherQuesta classe rappresenta un motore che esegue vari operazioni di matching. Questa classe non ha un costruttore, può essere utilizzatamatches()Il metodo create/get dell'oggetto della classe java.util.regex.Pattern.

Inreset()I metodi di questa classe (matcher) rimuovono tutte le informazioni di stato e ripristinano la sequenza di caratteri ai valori di default, con la posizione iniziale a zero.

Esempio 1

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Reset {
   public static void main(String[] args) {
      String str = '<p>This <b>is</b> an <b>example</b>HTML <b>script</b> where <b>every</b> alternative <b>word</b> is <b>bold</b></p>'.
      //Abbinamento della stringa con l'etichetta in grassetto
      String regex = '<b>(\\S+)</b>';
      //Creazione di un oggetto modello
      Pattern pattern = Pattern.compile(regex);
      //Abbinamento della stringa con il modello già compilato
      Matcher matcher = pattern.matcher(str);
      while (matcher.find()) {
         System.out.println("Stato del matcher: "+matcher.toMatchResult());
         String result = matcher.group(1);
      }
      matcher = matcher.reset();
      System.out.println("Stato del matcher dopo averlo ripristinato: "+matcher.toMatchResult());
   }
}

Risultato dell'output

Stato del matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,116 lastmatch=<b>is</b>]
Stato del matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,116 lastmatch=<b>example</b>]
Stato del matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,116 lastmatch=<b>script</b>]
Stato del matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,116 lastmatch=<b>every</b>]
Stato del matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,116 lastmatch=<b>>word</b>]
Stato del matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> regione=0,116 lastmatch=<b>bold</b>]
Stato del matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,116 lastmatch=]
Stato del matcher dopo il reset: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,116 lastmatch=]

Un'altra variante di questo metodo accetta dati di stringa e li utilizza per resettare il Matcher.

Esempio 2 

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Reset {
   public static void main(String[] args) {
      String str = '<p>This <b>is</b> an <b>example</b> HTML <b>script</b> where <b>every</b> alternative <b>word</b> is <b>bold</b></p>'.
      //Abbinamento della stringa con l'etichetta in grassetto
      String regex = "(\\S+)";
      //Creazione di un oggetto modello
      Pattern pattern = Pattern.compile(regex);
      //Abbinamento della stringa con il modello già compilato
      Matcher matcher = pattern.matcher(str);
      while (matcher.find()) {
         System.out.println("Stato del matcher: "+matcher.toMatchResult());
         String result = matcher.group(1);
      }
      matcher = matcher.reset("<b>this</b> è <b>nuovo</b> stringa <b>after</b> reset");
      while (matcher.find()) {
         System.out.println("Stato del matcher dopo averlo ripristinato: "+matcher.toMatchResult());
      }
   }
}

Risultato dell'output

Stato del matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,116 lastmatch=<b>is</b>]
Stato del matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,116 lastmatch=<b>example</b>]
Stato del matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,116 lastmatch=<b>script</b>]
Stato del matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,116 lastmatch=<b>every</b>]
Stato del matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> regione=0,116 lastmatch=<b>word</b>]
Stato del matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> regione=0,116 lastmatch=<b>bold</b>]
Stato del matcher dopo averlo resettato: java.util.regex.Matcher[pattern=<b>(\S+)</b> regione=0,51 lastmatch=<b>this</b>]
Stato del matcher dopo averlo resettato: java.util.regex.Matcher[pattern=<b>(\S+)</b> regione=0,51 lastmatch=<b>new</b>]
Stato del matcher dopo averlo resettato: java.util.regex.Matcher[pattern=<b>(\S+)</b> regione=0,51 lastmatch=<b>after</b>]