Las expresiones regulares (regex) son herramientas poderosas para encontrar y manipular patrones en cadenas de texto. En C++, podemos utilizar la biblioteca <regex>
para trabajar con expresiones regulares. A continuación, se presentan algunos ejemplos de uso y una explicación detallada de cada expresión utilizada.
1. Cadenas de Longitud Impar
Expresión Regular: (a|b)(a|b)*(a|b)
Esta expresión se utiliza para encontrar cadenas compuestas por los caracteres ‘a’ y ‘b’ cuya longitud sea impar. Vamos a desglosar la expresión:
(a|b)
: Coincide con un solo carácter, ya sea ‘a’ o ‘b’.(a|b)*
: Coincide con cero o más caracteres ‘a’ o ‘b’.(a|b)
: Coincide con un solo carácter ‘a’ o ‘b’ al final, asegurando que la longitud total de la cadena sea impar.
Ejemplo
- Coincide: “a”, “aba”, “ababa”
- No coincide: “ab”, “abab”
2. Cadenas de Longitud 5
Expresión Regular: (a|b){5}
Esta expresión encuentra cadenas de longitud exacta de 5 caracteres, que están compuestas por los caracteres ‘a’ y ‘b’.
(a|b)
: Coincide con ‘a’ o ‘b’.{5}
: Especifica que el patrón anterior debe repetirse exactamente cinco veces.
Ejemplo
- Coincide: “aaaaa”, “ababa”
- No coincide: “abcde”, “aabb”
3. ‘a’ en la Antepenúltima Posición
Expresión Regular: [abc]*a[abc]{2}$
Esta expresión se utiliza para encontrar cadenas que tengan la letra ‘a’ en la antepenúltima posición, y están compuestas por los caracteres ‘a’, ‘b’ o ‘c’.
[abc]*
: Coincide con cero o más caracteres ‘a’, ‘b’ o ‘c’.a
: Coincide con la letra ‘a’.[abc]{2}
: Coincide con exactamente dos caracteres ‘a’, ‘b’ o ‘c’ después de la ‘a’.$
: Indica el final de la cadena.
Ejemplo
- Coincide: “cabc”, “bbaac”
- No coincide: “abcba”, “aabcc”
4. Número Par de ‘a’ o Número Impar de ‘b’
Expresiones Regulares: ^(b*ab*a)*b*$
y ^((a|bb)*b)?$
^(b*ab*a)*b*$
: Coincide con cadenas que tienen un número par de ‘a’.b*
: Cero o más caracteres ‘b’.a
: Un carácter ‘a’.*
: Todo el patrón se puede repetir cualquier cantidad de veces.^((a|bb)*b)?$
: Coincide con cadenas que tienen un número impar de ‘b’.(a|bb)*
: Cero o más apariciones de ‘a’ o ‘bb’.b
: Un carácter ‘b’ al final asegura la imparidad.
Ejemplo
- Coincide: “b”, “bbb”, “bba”
- No coincide: “aa”, “aabbb”
5. Cadenas de Longitud Entre 2 y 5
Expresión Regular: [01]{2,5}
Esta expresión coincide con cadenas de longitud entre 2 y 5 caracteres, compuestas por ‘0’ y ‘1’.
[01]
: Coincide con ‘0’ o ‘1’.{2,5}
: Especifica que el patrón debe repetirse entre 2 y 5 veces.
Ejemplo
- Coincide: “01”, “11111”
- No coincide: “1”, “011010”
6. Cadenas de Longitud Múltiplo de 3
Expresión Regular: ([01]{3})*
Esta expresión coincide con cadenas cuya longitud es un múltiplo de 3, compuestas por ‘0’ y ‘1’.
[01]{3}
: Coincide con cualquier combinación de tres caracteres ‘0’ o ‘1’.*
: Repite este grupo cero o más veces.
Ejemplo
- Coincide: “000”, “111000”, “010101”
- No coincide: “01”
7. Validación de Código Postal
Expresión Regular: [0-9]{5}
Esta expresión se utiliza para validar un código postal español de 5 dígitos.
[0-9]
: Coincide con cualquier dígito del 0 al 9.{5}
: Especifica que debe haber exactamente cinco dígitos.
Ejemplo
- Coincide: “12345”
- No coincide: “12”, “abcdef”
8. Validación de Teléfono con Formato XXX-XXX-XXX
Expresión Regular: [0-9]{3}-[0-9]{3}-[0-9]{3}
Esta expresión valida un número de teléfono con el formato XXX-XXX-XXX
.
[0-9]{3}
: Coincide con tres dígitos.-
: Coincide con el carácter guion.
Ejemplo
- Coincide: “123-456-789”
- No coincide: “123456789”
9. Fecha en Formato DD/MM/AAAA
Expresión Regular: [0-3]?[0-9]/[01]?[0-9]/[0-9]{4}
Esta expresión valida una fecha en formato DD/MM/AAAA
.
[0-3]?[0-9]
: Coincide con días del 01 al 31./
: Coincide con el separador ‘/’.[01]?[0-9]
: Coincide con meses del 01 al 12.[0-9]{4}
: Coincide con un año de cuatro dígitos.
Ejemplo
- Coincide: “01/01/2020”, “31/12/1999”
- No coincide: “32/01/2020”
10. Cadenas que Terminan en “ed” o “ing”
Expresión Regular: .*(ed|ing)$
Esta expresión encuentra cadenas que terminan en “ed” o “ing”.
.*
: Coincide con cualquier cantidad de caracteres.(ed|ing)
: Coincide con “ed” o “ing”.$
: Indica el final de la cadena.
Ejemplo
- Coincide: “finished”, “running”
- No coincide: “play”
Las expresiones regulares son una herramienta muy versátil para trabajar con patrones de texto y pueden usarse en una variedad de contextos, desde validación de entradas hasta procesamiento de datos complejos. Usar la biblioteca <regex>
en C++ nos proporciona una forma estándar de implementar estas validaciones de forma eficiente.
Contenido restringido
Comments are closed