Curso-lenguaje-python/30-days-of-python/18_Expresiones_regulares/README.md

87 lines
2.6 KiB
Markdown
Raw Normal View History

# Expresiones regulares
Documento original en inglés: [Regular Expressions](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/18_Day_Regular_expressions/18_regular_expressions.md)
## Ejercicios
### Ejercicios: Nivel 1
1. ¿Cuál es la palabra más frecuente en el siguiente párrafo?
```
paragraph = 'I love teaching. If you do not love teaching what else can you love. I love Python if you do not love something which can give you all the capabilities to develop an application what else can you love.
```
```
[
(6, 'love'),
(5, 'you'),
(3, 'can'),
(2, 'what'),
(2, 'teaching'),
(2, 'not'),
(2, 'else'),
(2, 'do'),
(2, 'I'),
(1, 'which'),
(1, 'to'),
(1, 'the'),
(1, 'something'),
(1, 'if'),
(1, 'give'),
(1, 'develop'),
(1, 'capabilities'),
(1, 'application'),
(1, 'an'),
(1, 'all'),
(1, 'Python'),
(1, 'If')
]
```
2. La posición de algunas partículas en el eje x horizontal son -12, -4, -3 y -1 en la dirección negativa, 0 en el origen, 4 y 8 en la dirección positiva. Extrae estos números de todo el texto y encuentra la distancia entre las dos partículas más lejanas.
```
puntos = ['-12', '-4', '-3', '-1', '0', '4', '8']
puntos_ordenados = [-12, -4, -3, -1, -1, 0, 2, 4, 8]
distancia = 8 - (-12) # La distancia es 20
```
### Ejercicios: Nivel 2
1. Escribe un patrón que identifique si una cadena es una variable válida en Python.
```
es_variable_valida('primer_nombre') # Verdadero
es_variable_valida('primer-nombre') # Falso
es_variable_valida('1primer_nombre') # Falso
es_variable_valida('nombre') # Verdadero
```
### Ejercicios: Nivel 3
1. Limpia el siguiente texto. Después de limpiarlo, cuenta las tres palabras más frecuentes en la cadena.
```
sentence = '''%I $am@% a %tea@cher%, &and& I lo%#ve %tea@ching%;. There $is nothing; &as& mo@re rewarding as educa@ting &and& @emp%o@wering peo@ple. ;I found tea@ching m%o@re interesting tha@n any other %jo@bs. %Do@es thi%s mo@tivate yo@u to be a tea@cher!?'''
print(clean_text(sentence));
I am a teacher and I love teaching There is nothing as more rewarding as educating and empowering people I found teaching more interesting than any other jobs Does this motivate you to be a teacher
print(most_frequent_words(cleaned_text)) # [(3, 'I'), (2, 'teaching'), (2, 'teacher')]
```
### Ejercicios: Nivel 4
1. Extrae el DNI de la siguiente cadena.
```
dni = """Asunto: Datos para la nómina.
Respondiendo a su mail, le paso el dato personal que le faltaba. Mi DNI es 12345678A.
Saludos.
"""
```
[Solución](01_regex.py)
[<< Day 17](../17_Manejo_de_excepciones/README.md) | [Day 19 >>](../19_Manipulación_de_archivos/README.md)