Antes de empezar
Para realizar estos ejercicios, deberás descargar los recursos del enlace de proyecto_expresiones_regulares. Como puedes ver, la solución está compuesta de varios proyectos. Cada uno de ellos corresponde con un ejercicio, deberás implementar todo el código, tanto de la Main como de los métodos que se piden en cada ejercicio. Cada proyecto contiene el test correspondiente, que deberás pasar para comprobar que has hecho el ejercicio correctamente.
Los últimos ejercicios están pensados para trabajar de forma avanzada el manejo de EERR en C#. Se recomienda revisar los apuntes de la unidad antes de resolverlos.
En este ejercicio deberemos crear las expresiones regulares que sirvan para validar los siguientes formatos.
Patrón numeroTarjetaCredito que verifique si una cadena representa un número de tarjeta de crédito válido en formato típico. Debe aceptar tarjetas con o sin espacios, agrupadas en bloques de 4 dígitos. El patrón debe:
Ejemplos válidos:
1234 5678 9012 3456
1234567890123456
Patrón nombreUsuario que valide nombres de usuario para una web. Las reglas son:
Ejemplos válidos: juan_87, maria.rosa, Carlos1990
Ejemplos inválidos: 123mario, luis_, .pepe, ana-too-long-user-name
Patrón matriculaCoche para validar las matrículas de coche con el formato actual de España: 4 números seguidos de 3 letras. Las letras no pueden incluir vocales.
Ejemplo válido: 1234BCD
Ejemplo inválido: 12AB345, 1234AEI
Patrón codigoPostal que sirva para validar códigos postales Españoles. Debe aceptar únicamente códigos de 5 dígitos, donde los dos primeros estén entre 01 y 52.
Ejemplo válido: 46010, 28013
Ejemplo inválido: 99000, 523456
Ejercicio 1: Iniciándonos con ER === VALIDACIÓN DE TARJETA DE CRÉDITO === Introduce un número de tarjeta: 1234 45671235 2145 La '1234 45671235 2145' es válida === VALIDACIÓN DE NOMBRE DE USUARIO === Introduce un nombre de usuario: Pepe_Garcia.Info La 'Pepe_Garcia.Info' no es válida === VALIDACIÓN DE MATRÍCULA === Introduce una matrícula: 1234CTK La '1234CTK' es válida === VALIDACIÓN DE CÓDIGO POSTAL === Introduce un código postal: 51423 La '51423' es válida Presiona Enter para salir...
Requisitos:
Crea la expresión regular para comprobar el formato del Código de Identificación Fiscal (C.I.F.).
Ejercicio 2: Validación de CIF Introduce un CIF: B 1256478 A CIF válido: B 1256478 A - Tipo de organización: B - Código provincial: 12 - Numeración secuencial: 56478 - Dígito de control: A Presiona Enter para salir...
Requisitos
Tendrá el siguiente formato: T<sep>PPNNNNN<sep>C donde <sep> podrá ser ' ', '-' o nada.
Deberemos crear grupos con nombre para cada una de las partes (tipo, provincia, secuencial y control).
La expresión regular la crearemos en la clase Program pública y estática.
Tendremos el método CompruebaCif al que le llegará la cadena, validará si el formato es correcto y en ese caso se extraerá la información de los grupos para mostrar la salida como en el ejemplo.
Dado un conjunto de líneas de log con marcas de tiempo tipo [2025-07-28 12:34:56], extrae:
ERROR:)Ejercicio 3. Analizador de logs AnalizarLogs([ "[2025-07-28 12:34:56] INFO: Inicio", "[2025-07-28 12:35:00] ERROR: Fallo de conexión", "[2025-07-28 12:36:00] WARN: Memoria baja", "[2025-07-28 12:37:00] INFO: Fin" ]) Errores encontrados: Fallo de conexión Tipos de eventos únicos: INFO, ERROR, WARN Primer mensaje: Inicio Último mensaje: Fin
Requisitos:
MatchCollection matches = regex.Matches(texto) para extraer todas las ocurrencias del texto. Donde regex es un objeto de tipo Regex.Implementa un método ExtraeEtiquetas al que le llega una cadena y extrae el contenido entre etiquetas HTML de todas las coincidencias de la cadena de entrada. Usa expresiones regulares para capturar todos los bloques <etiqueta>...</etiqueta> válidos.
Ejercicio 4: Extracción de contenido de etiquetas HTML Introduce la línea HTML: <p>Hola mundo</p><p>¿Qué tal estás?</p> El contenido de la línea es: ["Hola mundo", "¿Qué tal estás?"] Presiona Enter para salir...
Requisitos:
En esta segunda parte vas a mejorar el traductor al lenguaje Tiko permitiendo el uso de expresiones regulares (Regex) para hacer el procesamiento más potente, limpio y flexible.
A partir de una frase introducida por el usuario, realiza las siguientes transformaciones, ahora utilizando Regex en los puntos señalados:
x q por por quéEjercicio 5. Reescritor Tiko extendido ER Introduce una frase: jajajaja tengo 2 perros y holaaa x q no vienes? Tiko extendido: 😂 tengo dos perros y hola por qué no vienes?
Requisitos:
Regex.Replace() con la sustitución de la primera referencia capturada, para conseguir la eliminación de duplicados. Deberás controlar primero que las r y l se pueden repetir dos veces y después el resto de letras.foreach, if, for) para las transformaciones que pueden resolverse con expresiones regulares.