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()); } } }
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()); } }
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