Post on 02-Jul-2015
http://www.regular-expressions.info/
Referencias
? El elemento precedente es opcional y debe coincidir al menos una vez.* El elemento precedente debe coincidir cero o más veces{n} El elemento precedente debe coincidir exactamente n veces+ El elemento precedente debe coincidir una o más veces.{,m} El elemento precedente es opcional y debe coincidir al menos m veces.{n,m}El elemento precedente debe coincidir al menos n veces pero no más de m veces.
Patrón Qué representapablo La cadena pablo^pablo La cadena pablo al comienzo de una línea.pablo$ La cadena pablo al final de una línea.^pablo$ La cadena pablo formando una única línea.niñ[oa] La cadena niño o niñani[^aeiou]o La tercera letra no es una vocal minúscula.ga.o La tercera letra es cualquier carácter.^....$ Cualquier línea que contenga 4 caracteres.^\. Cualquier línea que comienza por punto.^[^.] Cualquier línea que no comienza por punto.niños* niño, niños, niñoss, niñosss, etc“niño” niño entre comillas dobles.“*niño”* niño con o sin comillas dobles.[a-z][a-z]* una o más letras minúsculas.[a-z]+ una o más letras minúsculas (sólo válido en algunas aplicaciones).[^0-9A-Z] cualquier caracter que no sea ni número ni letra mayúscula.[a-zA-Z] cualquier letra sea mayúscula o minúscula.[Ax5] cualquier carácter que sea A, x o 5.niño|niña|nadauna de las tres palabras.(s|arb)usto la palabra susto o arbusto.ga?t[oa] gato, gata, gasto, gaita, etc.\<ga cualquier palabra que empiece por ga.ño\> cualquier palabra que termine por ño\<niño\> la palabra niñoo\{2,\} dos o más oes en una misma fila.
Ejercicio 1
Crea un fichero de texto (expr_reg_1.txt) que contenga las siguientes palabras (una en cada
línea):
a aba aabb aabbb aaabbbaa baa abab ababa bababaab bbb baaa abbba bbaabbba aaaa baba bbaab bbabaaaaa aaba bbbb bbbaa bbbabb
Escribe expresiones regulares de manera que la orden
$ grep -opciones expresion_regular expr_reg_1.txt
extraiga únicamente las líneas que:
1. contengan la cadena "aba"
2. contengan tres "b" seguidas
3. empiecen por dos "a"
4. terminen por "ba"
5. empiecen por "a" y terminen por "b" (enmedio puede haber cualquier cosa)
6. contengan sólo "a" (la cantidad no importa)
7. primero haya sólo una "b" y luego varias "a" (y no vuelva a haber más "b")
8. tengan tanto "a" como "b" (el orden o la cantidad no importa)
9. no tenga más de tres "a" o tres "b" seguidas
10. vayan alternando las "a" y las "b" sin repetirse
11. sólo tenga parejas de "a" y de "b"
12. tengan sólo "a" o sólo "b"
13. haya unas cuantas "a" y luego unas cuantas "b" o al revés
14. contengan la cadena "aba" o la cadena "bab"
15. contengan la cadena "ba" dos veces
Ejercicio 2
Crea un fichero de texto (expr_reg_2.txt) que contenga las siguientes palabras (una en cada línea):
-34,212/05/2004
32.455
693141592 Pepito Conejo
-45 1990130N 333, 91234567esto no son cuatro palabras
.5667 199011N3333,3
963141592Esto Son Cuatro Palabras
03/001/2003
22556871n 4/3/5 99/99/99 hola 25
12.34 26026 68888PEPito CONejo
hola adios
Escribe expresiones regulares de manera que la orden
$ grep -opciones expresion_regular expr_reg_1.txt
extraiga únicamente las líneas que sean:
1. números enteros (positivos o negativos)
2. números decimales (con una coma como separador decimal)
3. números decimales (con una coma o un punto como separador decimal)
4. números de teléfonos (de nueve cifras, que empiecen por 9 o 6)
5. códigos postales (de cinco cifras, que empiecen como mucho por 5)
6. DNI (siete u ocho cifras que pueden ir seguidas de una letra)
7. fechas (dd/mes/año)
8. palabras en minúsculas sin números
9. palabras en las que sólo la primera letra esté en mayúscula
10. tres o cuatro palabras (sin números)