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

Método reset() do Matcher em Java com exemplo

Estejava.util.regex.MatcherClasse representa um motor, realizando várias operações de correspondência. Esta classe não possui construtor, pode usarmatches()Método criado pela classe java.util.regex.Pattern/Obter o objeto dessa classe.

Emreset()Os métodos deste (matcher) removem todas as informações de estado e redefinem a sequência de caracteres para o valor padrão, adicionando a posição zero.

Exemplo1

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Reset {
   public static void main(String[] args) {
      String str = "<p>This<b>é</b>um<b>exemplo/b>HTML<b>script/b>onde<b>cada/b>palavra<b>alternativa/b>é<b>negrito/b></p>";
      //Correspondência de expressão regular com o conteúdo da tag em negrito
      String regex = "<b>(\\S+)</b>";
      //Criar um objeto de padrão
      Pattern pattern = Pattern.compile(regex);
      //Coincidência da string com o padrão compilado
      Matcher matcher = pattern.matcher(str);
      while (matcher.find()) {
         System.out.println("Estado do matcher: ")+matcher.toMatchResult());
         String result = matcher.group()1);
      }
      matcher = matcher.reset();
      System.out.println("Estado do matcher após redefinição: ");+matcher.toMatchResult());
   }
}

Resultado de saída

Estado do matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>is</b>]
Estado do matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>example</b>]
Estado do matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>script</b>]
Estado do matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>every</b>]
Estado do matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>>palavra/b>]
Estado do matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>bold</b>]
Estado do matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=]
Estado do matcher após redefinição: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=]

Outra variante deste método aceita dados de string e os usa para redefinir o Matcher.

Exemplo2 

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Reset {
   public static void main(String[] args) {
      String str = "<p>This<b>é</b>um<b>exemplo/b>HTML<b>script/b>onde<b>cada/b>palavra<b>alternativa/b>é<b>negrito/b></p>";
      //Correspondência de expressão regular com o conteúdo da tag em negrito
      String regex = "(\\S+);
      //Criar um objeto de padrão
      Pattern pattern = Pattern.compile(regex);
      //Coincidência da string com o padrão compilado
      Matcher matcher = pattern.matcher(str);
      while (matcher.find()) {
         System.out.println("Estado do matcher: ")+matcher.toMatchResult());
         String result = matcher.group()1);
      }
      matcher = matcher.reset("<b>this</b> é <b>new</b> string <b>after</b> reset");
      while (matcher.find()) {
         System.out.println("Estado do matcher após redefinição: ");+matcher.toMatchResult());
      }
   }
}

Resultado de saída

Estado do matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>is</b>]
Estado do matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>example</b>]
Estado do matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>script</b>]
Estado do matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>every</b>]
Estado do matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>word</b>]
Estado do matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>116 lastmatch=<b>bold</b>]
Estado do matcher após redefinição: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>51 lastmatch=<b>this</b>]
Estado do matcher após redefinição: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>51 lastmatch=<b>new</b>]
Estado do matcher após redefinição: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,</b>51 lastmatch=<b>after</b>]