Práctica de expresiones regulares: re.split() y re.findall()
Ahora tendrás la oportunidad de escribir algunas expresiones regulares para que coincidan con dígitos, cadenas y caracteres no alfanuméricos. Echa un vistazo primero a my_string
imprimiéndolo en la Shell ython IP, para determinar cómo podrías encajar mejor los distintos pasos.
Nota: Es importante prefijar tus patrones regex con r
para asegurarte de que tus patrones se interpretan de la forma que deseas. De lo contrario, puedes tener problemas con las secuencias de escape en las cadenas. Por ejemplo, "\n"
en Python se utiliza para indicar una nueva línea, pero si utilizas el prefijo r
, se interpretará como la cadena en bruto "\n"
-es decir, el carácter "\"
seguido del carácter "n"
- y no como una nueva línea.
Ya has importado el módulo de expresiones regulares re
.
Recuerda del vídeo que la sintaxis de la biblioteca regex es pasar siempre primero el patrón y después la cadena.
Este ejercicio forma parte del curso
Introducción al procesamiento de lenguaje natural en Python
Instrucciones del ejercicio
Divide
my_string
en cada final de frase. Para ello:Escribe un patrón llamado
sentence_endings
para que coincida con los finales de frase (.?!
).Utiliza
re.split()
para dividirmy_string
en el patrón e imprimir el resultado.
Encuentra e imprime todas las palabras en mayúsculas en
my_string
escribiendo un patrón llamadocapitalized_words
y utilizandore.findall()
.- ¿Recuerdas el patrón
[a-z]
que se muestra en el vídeo para emparejar grupos de minúsculas? Modifica ese patrón adecuadamente para que coincida con grupos de mayúsculas.
- ¿Recuerdas el patrón
Escribe un patrón llamado
spaces
para que coincida con uno o más espacios ("\s+"
) y luego utilizare.split()
para dividirmy_string
en este patrón, manteniendo intacta toda la puntuación. Imprime el resultado.Encuentra todos los dígitos en
my_string
escribiendo un patrón llamadodigits
("\d+"
) y utilizandore.findall()
. Imprime el resultado.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# Write a pattern to match sentence endings: sentence_endings
sentence_endings = r"[___]"
# Split my_string on sentence endings and print the result
print(re.____(____, ____))
# Find all capitalized words in my_string and print the result
capitalized_words = r"[___]\w+"
print(re.____(____, ____))
# Split my_string on spaces and print the result
spaces = r"___"
print(re.____(____, ____))
# Find all digits in my_string and print the result
digits = r"___"
print(re.____(____, ____))