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

Método reset() de Matcher en Java con ejemplo

Estejava.util.regex.MatcherEsta clase representa un motor que realiza varias operaciones de coincidencia. Esta clase no tiene constructor, se puede usarmatches()Métodos de la clase java.util.regex.Pattern/Obtener el objeto de esta clase.

Enreset()Los métodos de esta clase (matcher) eliminan toda la información de estado y resetean la secuencia de caracteres a su valor predeterminado, colocando el cursor en cero.

Ejemplo1

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Reset {
   public static void main(String[] args) {
      String str = "<p>This<b>es/b>un<b>ejemplo/b>HTML<b>script/b>donde<b>cada/b>palabra<b>alternativa/b>es<b>negrita/b></p>.";
      //Coincidencia de expresiones regulares con el contenido de las etiquetas en negrita
      String regex = "<b>(\\S+/b>";
      //Creación de un objeto de patrón
      Pattern pattern = Pattern.compile(regex);
      //Coincidencia del patrón compilado en la cadena de caracteres
      Matcher matcher = pattern.matcher(str);
      while (matcher.find()) {
         System.out.println("Estado del matcher: ")+matcher.toMatchResult());
         String result = matcher.group()1);
      }
      matcher = matcher.reset();
      System.out.println("Estado del matcher después de restablecerlo: "+matcher.toMatchResult());
   }
}

Resultado de salida

Estado del matcher: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>is</b>]
Estado del matcher: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>example</b>]
Estado del matcher: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>script</b>]
Estado del matcher: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>every</b>]
Estado del matcher: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>>palabra/b>]
Estado del matcher: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>bold</b>]
Estado del matcher: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=]
Estado del matcher después de restablecerlo: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=]

Otra variante de este método acepta datos de cadena y los usa para resetear el Matcher.

Ejemplo2 

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Reset {
   public static void main(String[] args) {
      String str = "<p>This<b>es/b>un<b>ejemplo/b>HTML<b>script/b>donde<b>cada/b>palabra<b>alternativa/b>es<b>negrita/b></p>.";
      //Coincidencia de expresiones regulares con el contenido de las etiquetas en negrita
      String regex = "(\\S+);
      //Creación de un objeto de patrón
      Pattern pattern = Pattern.compile(regex);
      //Coincidencia del patrón compilado en la cadena de caracteres
      Matcher matcher = pattern.matcher(str);
      while (matcher.find()) {
         System.out.println("Estado del matcher: ")+matcher.toMatchResult());
         String result = matcher.group()1);
      }
      matcher = matcher.reset("<b>this</b> es <b>new</b> cadena <b>after</b> reset");
      while (matcher.find()) {
         System.out.println("Estado del matcher después de restablecerlo: "+matcher.toMatchResult());
      }
   }
}

Resultado de salida

Estado del matcher: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>is</b>]
Estado del matcher: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>example</b>]
Estado del matcher: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>script</b>]
Estado del matcher: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>every</b>]
Estado del matcher: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>word</b>]
Estado del matcher: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,116 lastmatch=<b>bold</b>]
Estado del matcher después de restablecerlo: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,51 lastmatch=<b>this</b>]
Estado del matcher después de restablecerlo: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,51 lastmatch=<b>new</b>]
Estado del matcher después de restablecerlo: java.util.regex.Matcher[pattern=<b>(\S+/b> region=0,51 lastmatch=<b>after</b>]