Clase Matcher en Java

En Java, Matcher es una clase implementada por la interfaz MatchResult, que realiza operaciones de coincidencia en una secuencia de caracteres interpretando un patrón.

A continuación, podemos ver la declaración de java.util.regex.Matcher en java.lang.Object Class:

public final class Matcher extends Object implements MatchResult

Al invocar el método de comparación del patrón, se crea un comparador a partir de un patrón. Si se crea un comparador una vez, podemos realizar tres tipos diferentes de operaciones de coincidencia en él:

  • matches() : intenta hacer coincidir la secuencia de entrada total con el patrón.
  • lookingAt() : intente hacer coincidir la secuencia de entrada, con el patrón, comenzando desde el principio.
  • find() : Esto escanea la secuencia de entrada y busca la siguiente subsecuencia que coincida especialmente con el patrón.

Métodos de la clase Matcher :

A continuación, los métodos de la clase Matcher se agrupan en la tabla para mayor comodidad según su funcionalidad.

1. Métodos de índice: 

Proporciona valores de índice útiles. Muestra con precisión si la coincidencia se encontró en la string de entrada o no:

S. No. Nombre del método Descripción
1 inicio int público() Este método devuelve el índice de inicio de la coincidencia anterior.
2 Inicio int público (grupo int) Este método devuelve el índice de inicio de la subsecuencia capturada por el grupo dado durante la operación de coincidencia anterior.
3 extremo público int() Este método devuelve el desplazamiento después de que coincida el último carácter.
4 public int end (grupo int) Este método devuelve el desplazamiento después del último carácter de la subsecuencia capturada por el grupo dado durante la operación de coincidencia anterior.

2. Métodos de estudio: 

Revisa la string de entrada y devuelve un valor booleano que indica si se encuentra el patrón o no:

S. No. Nombre del método Descripción
1 booleano público mirando() Este método tiene como objetivo hacer coincidir la secuencia de entrada, comenzando al principio de la región, con el patrón.
2 búsqueda booleana pública() Este método tiene como objetivo encontrar la siguiente subsecuencia de la secuencia de entrada que coincida con el patrón.
3 búsqueda booleana pública (inicio int) Restablece este comparador y luego intenta encontrar la siguiente subsecuencia de la secuencia de entrada que coincida con el patrón, comenzando en el índice especificado.
4 coincidencias booleanas públicas() Este método tiene como objetivo hacer coincidir toda la región con el patrón.

3. Métodos de reemplazo: 

Estos son métodos útiles para reemplazar texto en una string de entrada:

S. No. Nombre del método Descripción
1 AppendReplacement de Matcher público (StringBuffer sb, reemplazo de string) Este método implementa un paso de agregar y reemplazar no terminal.
2 public StringBuffer appendTail(StringBuffer sb) Este método implementa un paso de agregar y reemplazar terminal.
3 string pública replaceAll (reemplazo de string) Este método reemplaza cada subsecuencia de la secuencia de entrada que coincida con el patrón con la string de reemplazo dada.
4 string pública replaceFirst (reemplazo de string) Este método reemplaza la primera subsecuencia de la secuencia de entrada que coincide con el patrón con la string de reemplazo dada.
5 Reemplazo de cotización de string estática pública (String s) Este método devuelve una string de reemplazo literal para la string especificada, este método también produce una string que funcionará en el método appendReplacement como un reemplazo literal de la clase Matcher.

Ejemplo 1: aquí podemos ver el ejemplo GFG.java que cuenta el número de veces que aparece la palabra «geek» en la string de entrada usando start()  y end() :

Java

// Java program to demonstrate the
// methods of Matcher class in Java
  
import java.util.regex.Matcher;
import java.util.regex.Pattern;
  
public class GFG {
  
    private static final String REGEX = "\\bgeek\\b";
    private static final String INPUT
        = "geek geek geek geekie geeks";
  
    public static void main(String[] args)
    {
        Pattern pat = Pattern.compile(REGEX);
        
        //  here get a matcher object
        Matcher mat = pat.matcher(INPUT);
        
        // initialize a count variable to count
        int count = 0;
  
        // try to match the entire input sequence against
        // the pattern using the loop
        while (mat.find()) {
            count++;
            System.out.println("Match number " + count);
            System.out.println("start(): " + mat.start());
            System.out.println("end(): " + mat.end());
        }
    }
}
Producción

Match number 1
start(): 0
end(): 4
Match number 2
start(): 5
end(): 9
Match number 3
start(): 10
end(): 14

Ejemplo 2: En este ejemplo, podemos ver GFG.java, lookingAt() y matches() ambos intentan hacer coincidir una secuencia de entrada con un patrón.

Java

// Java program to demonstrate the
// methods of Matcher class in Java
  
import java.util.regex.Matcher;
import java.util.regex.Pattern;
  
public class GFG {
  
    private static final String REGEX = "geek";
    private static final String INPUT = "geeksforgeeks";
    private static Pattern pat;
    private static Matcher mat;
  
    public static void main(String[] args)
    {
  
        // Initialization for pattern and matcher
        pat = Pattern.compile(REGEX);
        mat = pat.matcher(INPUT);
  
        System.out.println("Current REGEX: " + REGEX);
        System.out.println("Current INPUT: " + INPUT);
  
        System.out.println("lookingAt(): "
                           + mat.lookingAt());
        System.out.println("matches(): " + mat.matches());
    }
}
Producción

Current REGEX: geek
Current INPUT: geeksforgeeks
lookingAt(): true
matches(): false

Publicación traducida automáticamente

Artículo escrito por kumarsaurabhsingh05 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *