Ejercicios propuestos y resueltos expresiones regulares en Java

Hola a todos, hoy os dejo una serie de ejercicios de Java para practicar todo aquello que hemos explicado en anteriores posts.


Todos los ejercicios que proponemos están resueltos en este mismo post, intenta hacerlo por ti mismo y si te quedas atascado puedes mirar la solución. Recuerda, que no tiene por que estar igual tu solución con la del post, el objetivo es que aprendas no que me copies la solución.

Te recomiendo que uses mensajes de trazas, donde te sean necesarios. Si tienes problemas también puedes usar el depurador.

Aquí tienes todos los posts relacionados con Java:

Curso Java

Si tienes alguna duda, recuerda que puedes consultarnos escribiendo un comentario en este post o enviándonos un e-mail a administrador@discoduroderoer.es

Son básicamente funciones que podéis reutilizar para vuestros proyectos, podéis quitar static si lo ponéis en una clase por ejemplo.

1) Validar un número entero.

Spoiler Inside SelectShow>

2) Validar un número entero positivo.

Spoiler Inside SelectShow>

3) Validar un número entero negativo.

Spoiler Inside SelectShow>

4) Validar DNI, 8 números y una letra al final.

Spoiler Inside SelectShow>

5) Validar una IP.

Spoiler Inside SelectShow>

6) Validar una matricula de un coche con formato 0000XXX

Spoiler Inside SelectShow>

7) Validar un número binario.

Spoiler Inside SelectShow>

8) Validar un número octal.

Spoiler Inside SelectShow>

9) Validar un número hexadecimal.

Spoiler Inside SelectShow>

10) Validar numero real.

Spoiler Inside SelectShow>

11) Validar numero real positivo.

Spoiler Inside SelectShow>

12) Validar numero real negativo.

Spoiler Inside SelectShow>

13) Validar numero real con x decimales.

Spoiler Inside SelectShow>

14) Validar numero real positivo con x decimales.

Spoiler Inside SelectShow>

15) Validar numero real negativo con x decimales.

Spoiler Inside SelectShow>

16) Validar una fecha con formato dd/mm/aaaa

Spoiler Inside SelectShow>

17) Validar un nombre, incluyendo nombres compuestos.

Spoiler Inside SelectShow>

18) Validar un email.

Spoiler Inside SelectShow>

19) Valida un nombre de usuario en twitter, empieza por @ y puede contener letras mayusculas y minusculas, numeros, guiones y guiones bajos.

Spoiler Inside SelectShow>

20) Validar ISBN de 13 digitos, siempre empieza en 978 o 979.

Spoiler Inside SelectShow>

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

6 comentarios

  1. Alvaro Alarcon macho

    Yo queria preguntar una duda, espero que me respondan lo mas pronto posible. Mi duda es que estoy intentando validar un numero de telefono con las siguientes caracteristicas:
    -Un número de teléfono tiene 9 dígitos.
    -El primer dígito siempre es 8 o 9.
    -Opcionalmente puede ir precedido por el código del país (con o signo +). El código de
    país está formado por un número de entre dos y cuatro dígitos

    Estoy utilizando eclipse para programar java,
    public static boolean validarTelefono(String telefono) {
    return telefono.matches(«^([+]{1}?[0-9]{2,3,4})?[8-9]{1}[0-9]{8}$»);
    }
    esta es la expresion regular que he hecho para validar el telefono pero no me funciona y no entiendo el porque, espero que puedan ayudarme
    Gracias

  2. José

    Alvaro Alarcon Macho

    import re

    patron = re.compile(r'((^\+)[0-9]{2,4})?(8|9)[1-9]{8}’)
    lista = [‘+12812345678’, ‘+12912345678’, ‘912345678’]

    print(patron.match(lista[0]))
    print(patron.match(lista [1]))
    print(patron.match(lista [2]))

  3. Aquiles

    Hola, tengo un problema con este ejercicio y necesito ayuda gracias

    El objetivo principal de esta tarea es crear una clase ISBN con un único método estático esValido(String isbn) que determine si el ISBN proporcionado es o no correcto.
    Para verificar que el correcto funcionamiento del método que se va a desarrollar se creará una batería de test en JUnit atendiendo a las siguientes especificaciones:

    Hasta el año 2007, todas ediciones y variaciones de un libro recibían un ISBN de 10 dígitos dividido en los cuatro grupos siguientes:

    • Código de país o lengua de origen (ISBN por países)
    • Código del editor (asignado por la agencia nacional del ISBN)
    • Número del artículo (elegido por el editor)
    • Dígito de control
    Los tres primeros campos pueden tener diferentes longitudes y se separan por guiones (no se requiere trabajar con los códigos de países y editores reales, solo contemplar que el ISBN se puede separar con guiones), mientras que el dígito de control solo es uno y puede ser un dígito entre el 0 y el 9 o la letra X.

    Para facilitar el trabajo de verificación de la validez del formato de ISBN se proponen las siguientes pruebas:

    • En conjunto, el ISBN tendrá una longitud de 13 caracteres, siendo 3 de ellos obligatoriamente guiones, y el resto números o la letra X. Define casos de prueba válidos e inválidos.
    • No pueden aparecer dos guiones seguidos en el ISBN. Define casos de prueba válidos e inválidos.
    • Después del último guión solo puede haber un carácter, o lo que es lo mismo, el último guión se tiene que encontrar obligatoriamente en la posición 11 de la cadena de texto, si esta comienza en 0. Define casos de prueba válidos e inválidos.
    • Cuando tenemos ya los códigos de país, editor y artículo los colocamos y multiplicamos cada uno de los números por la posición que ocupan, es decir, el primero por 1, el segundo, por dos y así sucesivamente hasta el último que se multiplicaría por 9. Después dividimos el resultado entre 11. Dicha división dejará un resto, digamos r, entre 0 y 10. Si r está entre 0 y 9 tomamos r como dígito de control. Si el resto es 10 tomamos como dígito de control la letra X.

Deja una respuesta

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