Expresiones Regulares, Validador de Frame ( Metodo matches ) [JAVA]

Las expresiones regulares son una secuencia de caracteres y símbolos que definen un conjunto de cadenas.

Son útiles para validar la entrada y asegurar que los datos estén en un formato específico. Por ejemplo un código postal debe coincidir de 5 dígitos, un apellido debe comenzar con mayúscula, un número telefónico debe tener solo números y así.
La clase String proporciona varios métodos para realizar operaciones con expresiones regulares siendo la mas simple la expresión de concordancia.
El método matches recibe una cadena que especifica la expresión regular, y compara el contenido del objeto String que lo llama con la expresión regular. Devuelve un valor Bolean indicando si hubo concordancia o no.
Una expresión regular consiste de caracteres literales y símbolos especiales.

En la siguiente figura se muestran algunas clases predefinidas de caracteres que pueden usarse con las expresiones regulares.
Expresiones regulares - Clases predefinidas de caracteres

 

 

 

 

Una clase de carácter es una secuencia de escape que representa a un grupo de caracteres. Un carácter de palabra es cualquier carácter alfanumérico o guión bajo, un carácter de espacio en blanco es un espacio, tabulador, retorno de carro o nueva línea y un digito es cualquier carácter numérico.

Para explicar lo aprendido dejo una simple aplicación que consiste básicamente en un validador de entrada o Frame en donde el usuario ingresa los datos en el formulario y

Al hacer clic en aceptar, el programa comprueba que no haya campos vacíos, si no hay campos vacios el programa informara al usuario tal evento, si no hay campos vacíos se pasa a validar la entrada del usuario.

Se validara por ejemplo en el primer caso el Nombre (que es igual a la validación de apellido ) usando el patrón ( “[A-Z][a-zA-Z]*”) en este caso le estamos diciendo que la entrada para ser valida debe tener el primer carácter en mayúscula [A-Z] y que los siguientes caracteres pueden ser cualquier carácter tanto minúscula como mayúscula [a-zA-Z] con el asterisco final le estamos diciendo que los siguientes caracteres van a ser iguales a la expresión previamente indicada, ósea la expresión que esta entre corchetes directamente al lado izquierdo del asterisco. Finalmente se podría indicar si quisiera una validación mas sobre la cantidad mínima de caracteres esperados para que nunca ingresen nombres de 2 o 3 letras por poner un ejemplo así pues solo nombres de 4 letras o superiores podrán ser ingresados, quedaría algo asi..

(“[A-Z][a-zA-Z]*\\D{3}”))

Como ven se ha agregado el signo de escape ‘\’ seguido de la clase predefinida ‘\D’ y a su vez seguido de un numero entre corchetes que indica la cantidad mínima de caracteres del tipo previamente ingresado (en este caso [a-zA-Z]).

Aclarado este punto y para que quede claro voy a presentar el ejemplo de una validación típica de Nombre mostrando lo explicado hasta recién.

//si el formato del nombre es invalido mostramos el mensaje
if (!txtNombre.getText().matches(“[A-Z][a-zA-Z]*\\D{3}”))
JOptionPane.showMessageDialog(this,”Nombre invalido”);

Finalmente un programa como de costumbre a manera de ejemplo y aplicando todo lo previamente explicado.

Expresiones Regulares - Validador de Frames

 

<< Descargar Codigo Fuente >>

 

eso es todo por hoy saludos, cualquier duda consulten.

Anuncios

Etiquetas: , , , , , , ,

About exequielc

Hola! Estás en el blog de Exequiel Catalani. Como es un blog, se trata de una extensión más o menos lineal de las cosas que hago y pasan por mi cabeza: ciberculturas, videos de la red, nuevos medios y tecnologia, y Programacion etc...

14 responses to “Expresiones Regulares, Validador de Frame ( Metodo matches ) [JAVA]”

  1. Emmanuel says :

    chido

  2. Euro says :

    Hola. quiero saber si existe alguna libreria que me permita validar un expresion regular como la que colocas de ejemplo. Dentro de mi formulario tengo un campo para ingresar expresiones regulares, y necesito validar que la expresion regular que se está ingresando tenga sentido y sea valida. Eso es posible?

  3. Euro says :

    Ups. Estoy trabajando con Java.

  4. Panic_Show says :

    Muchas gracias, tu código fue de mucha utilidad.
    Saludos.

  5. Rulo says :

    oye muchas gracias por el aporte
    esto me servira para hace un compilador de java

  6. Mary says :

    Hola te felicito por tu blog fijate que quise descargar el codigo fuente pero me tira error, asi que no se si pudieras decirme que pasa y como podria descargar los codigos fuentes, es que necesito ver como es que se trabaja, de ante mano gracias!!

  7. oskarin says :

    hola no se puede descargar el archivo para ver el codigo lo podrias arreglar por favor gracias….seria de gran utilidad

  8. humberto ugarte carpena says :

    Muy bueno, para los que no puedes descargar el codigo:

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    if(txtnom.getText().matches(“[A-Z][a-zA-Z]*”))
    JOptionPane.showMessageDialog(null,”El nombre fue ingresado correctamente”);
    else
    JOptionPane.showMessageDialog(null,”El nombre debe comensar con Mayuscula”);

    }

  9. maryc says :

    hola, chvre la explicacion, como haria para validar esto? Claro60_2?….estoy haciendo lo k se indica pero simplemente me aroja false.
    String patron1=”[Claro][1_1]”;
    String key=”Claro1_1″;
    System.out.println(key.matches(patron1));
    no sé si este correcto eso…

  10. Juan Florez says :

    Por favor alguien que me pueda ayudar tengo que compilar un Pseudocodigo y las variabes validas pueden estar conformada por letras y numeros y un _ y que tenga menos de 10 caracteres
    ej: juan_9_020
    juanflore
    juan2010
    las invalidas son
    ej: 1juan9020
    juan#9020
    %juan2010
    expresion
    ([^0-9][a-zA-Z0-9_]+){9} me funciona para algunas validaciones para otras no

  11. lisbey says :

    y cuando la persona tiene varios nombres??? como lo validamos

  12. Cuchox says :

    Gracias por la información, me sirvio mucho 😀 saludos

  13. Larissa Orrego says :

    me fue muy útil, ahora cual sería el código para que no permita que se guarde un campo vacío??

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: