;

Full width home advertisement

Tutoriales

Programación

Post Page Advertisement [Top]



Las expresiones regulares se puede definir como la búsqueda de patrones  en cadena de caracteres, esta búsqueda de patrones se hace de izquierda  a derecha y el patrón buscado puede repetirse varias veces como que no se encuentre.

Obviamente muchos lenguajes soportan expresiones regulares, en el caso de Java tiene una API bastante completa  en el paquete Java.util.regex.


Ejemplo 1:

En el siguiente código usare una expresión regular para hallar este patrón "http://" dentro de una cadena.

import java.util.regex.*;

public class ExpresionesRegularesJava {

    public static void main(String[] args) {
        String texto
                = "Cadena en la cual se aplicara expresiones regulares "
                + "para encontrar el siguiente patrón http:// ";

        String patron = ".*http://.*";

        boolean patronencontrado = Pattern.matches(patron, texto);

        System.out.println("Patrones encontrados = " + patronencontrado);
    }

}


La interfaz Pattern contiene muchas funciones útiles como el método matches() que se uso en el ejemplo anterior.   Pero existen otras funciones útiles como Pattern.compile() que permite crear una instancia  de Pattern cuando necesites evaluar mas de una vez un texto en contra de una expresión regular.       También existe la clases Matches que al instanciar  permite usarla para hallar patrones en el mismo texto o diferentes textos.

Ejemplo 2:

Pattern.Compile()

package expresionesregularesjava;

import java.util.regex.*;

public class Compile {

    public static void main(String[] args) {
        String texto
                = "Cadena en la cual se aplicara expresiones regulares "
                + "para encontrar el siguiente patrón http:// ";

        String cadenapatron = ".*http://.*";

        Pattern patron = Pattern.compile(cadenapatron);
        Matcher igualdades = patron.matcher(texto);
        boolean encuentro = igualdades.matches();

    }

}



Por otro lado String tienen funciones propias para manejar expresiones regulares tales como:  matches(), split(),  replace();

Ejemplo 3:

package expresionesregularesjava;

public class ExpresionesconString {

    public static void main(String[] args) {
        String ejemplo = "Un pequeño ejemplo " + " de una cadena " + "que usare para hallar patrones.";
        System.out.println(ejemplo.matches("\\w.*"));
        String[] splitString = (ejemplo.split("\\s+"));
        System.out.println(splitString.length);
        for (String string : splitString) {
            System.out.println(string);
        }
        
        System.out.println(ejemplo.replaceAll("\\s+", "\t"));
    }

}

Otro ejemplo de lo que se puede hacer  con estos metodos  se pueden mostrar con el siguiente ejemplo:

package expresionesregularesjava;

public class ClasevalidacionExpreciones {

    // Retorna true si la cadena es exactamente igual que "verdadero"
    public boolean isTrue(String s) {
        return s.matches("verdadero");
    }

    // Retorna true si la cadena es exactamente igual a "verdadero" o "Verdadero"
    public boolean isTrue2(String s) {
        return s.matches("[vV]erdadero");
    }

    // Retrona true if si la cadena es "true" or "True"
    //o es "si" or "Si"
    public boolean isTrueOsi(String s) {
        return s.matches("[vV]erdadero|[sS]i");
    }

    // Retorna true si la cadena contiene "verdadero"
    public boolean contieneTrue(String s) {
        return s.matches(".*verdadero.*");
    }

    //Retorna true si la cadena tiene tres letras
    public boolean sontresletras(String s) {
        return s.matches("[a-zA-Z]{3}");
        // otra forma sencilla
        // return s.matches("[a-Z][a-Z][a-Z]");
    }

    // Retorna true si tiene un numero al principio de la cadena
    public boolean isNoNumberAtBeginning(String s) {
        return s.matches("^[^\\d].*");
    }

    // Retorna true si contiene un numero aleatorio de B
    public boolean isB(String s) {
        return s.matches("([\\w&&[^b]])*");
    }

    // Retorna true si contiene algu numero menor a 300
    public boolean isSparta(String s) {
        return s.matches("[^0-9]*[12]?[0-9]{1,2}[^0-9]*");
    }
}


Estos son unos ejemplos básico de expresiones regulares en otro post continuare dando mas ejemplo de lo que se pueden hacer con expresiones regulares.

Codigo Fuente



No hay comentarios:

Publicar un comentario

Bottom Ad [Post Page]

| Designed by Colorlib