Anuncios

Bienvenidos sean a este post, hoy veremos una funcion de Java.

Anuncios

Esta funcion nos devuelve si el patron que usamos para la expresion regular se encuentra enteramente en la cadena o no. Veamos como es su sintaxis:

objeto.matches();
Anuncios

El objeto debe ser de tipo Matcher y lo aplicamos directamente. Esta nos devuelve un valor booleano para indicar si existe, true, de lo contrario devuelve un false pero recuerden que el patron debe coincidir enteramente en el texto de busqueda. Para entender como funciona, vamos a analizar el siguiente ejemplo:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegEx
{
  private static String REGEX = "foo";
  private static String TEXTO = "foo";

  public static void main(String[] args)
  {
        Pattern patron = Pattern.compile(REGEX);
        Matcher buscador = patron.matcher(TEXTO);

        if (buscador.matches())
        {
          System.out.println("Patron encontrado");
        } else {
          System.out.println("Patron no encontrado");
        }
  }
}
Anuncios
Anuncios

Primero importamos las dos librerias que usaremos para poder trabajar con nuestro codigo. Antes del main definiremos dos objetos de tipo String, el primero sera para la expresion regular que usaremos como patron y el segundo sera el texto donde trabajaremos. En el main, primero crearemos un objeto de tipo Pattern que sera el patron de busqueda. Para ello, usamos a compile y le pasamos el texto que vamos a usar como patron y definimos anteriormente. El segundo objeto es de tipo Matcher y es el que usaremos para buscar el patron. Para ello, usaremos al objeto y le aplicamos la funcion matcher y le pasamos el texto a analizar. Este se encargara de buscar el patron que pasamos en el texto. Luego tenemos un condicional. Este aplicara a la funcion en el segundo objeto, para saber si el patron se encuentra completo en el texto que utilizamos. Si es verdadero nos muestra un mensaje indicando esto, de lo contrario mostrara otro mensaje. Compilemos y veamos como es la salida:

$ java RegEx
Patron encontrado
$
Anuncios

Observen como es la salida, nos devolvio que coinciden completamente. Porque como comentamos al inicio, el texto debe coincidir plenamente con el patron. Vayamos nuevamente el codigo y busquemos la siguiente linea:

private static String REGEX = "foo";
Anuncios

Y la modificaremos de la siguiente manera:

private static String REGEX = "foo|perro|gato";
Anuncios

Cambiaremos el patron para que busque cualquiera de esos tres valores. Si lo vuelven a compilar y ejecutar deben obtener la misma salida porque el texto coincide en su integridad con la primer opcion. Si modificamos el texto por alguno de estos, seguira funcionando porque seguira coincidiendo en su totalidad. Volvamos al codigo y busquemos la siguiente linea:

private static String TEXTO = "foo";
Anuncios

Y lo modificaremos de la siguiente manera:

private static String TEXTO = "aabfoomhmlalasarasaeof";
Anuncios

En este caso, modificamos al texto donde aplicaremos el patron para ver si coinciden. Compilemos y veamos como es la salida ahora:

$ java RegEx
Patron no encontrado
$
Anuncios

Nos devolvio la salida donde no encuentra coincidencia por lo mencionado anteriormente, el texto debe coincidir completamente con el patron. En este post, hablamos sobre find y podemos darnos cuenta que son similares pero no es tan estricto para el tema de la coincidencia.

Anuncios

En resumen, hoy hemos visto a matches, que es, para que sirve, como se utiliza, y un ejemplo practico para poder verlo en accion. Espero les haya resultado de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50