Practica con expresiones regulares: re.split() y re.findall()
Ahora tendrás la oportunidad de escribir algunas expresiones regulares para encontrar dígitos, cadenas y caracteres no alfanuméricos. Mira primero my_string imprimiéndolo en la IPython Shell para decidir cómo encajar mejor los distintos pasos.
Nota: Es importante anteponer la r a tus patrones de regex para asegurarte de que se interpreten como quieres. De lo contrario, puedes tener problemas con las secuencias de escape en las cadenas. Por ejemplo, "\n" en Python indica una nueva línea, pero si usas el prefijo r, se interpretará como la cadena cruda "\n", es decir, el carácter "\" seguido del carácter "n", y no como una nueva línea.
El módulo de expresiones regulares re ya se ha importado por ti.
Recuerda del vídeo que la sintaxis de la librería de regex consiste en pasar siempre primero el patrón y después la cadena.
Este ejercicio forma parte del curso
Introducción al Natural Language Processing en Python
Instrucciones del ejercicio
- Divide
my_stringal final de cada oración. Para ello:- Escribe un patrón llamado
sentence_endingspara hacer coincidir finales de oración (.?!). - Usa
re.split()para dividirmy_stringcon el patrón e imprime el resultado.
- Escribe un patrón llamado
- Encuentra e imprime todas las palabras en mayúscula en
my_stringescribiendo un patrón llamadocapitalized_wordsy usandore.findall().- ¿Recuerdas el patrón
[a-z]del vídeo para agrupar minúsculas? Modifícalo adecuadamente para agrupar mayúsculas.
- ¿Recuerdas el patrón
- Escribe un patrón llamado
spacespara hacer coincidir uno o más espacios ("\s+") y luego usare.split()para dividirmy_stringcon este patrón, manteniendo toda la puntuación intacta. Imprime el resultado. - Encuentra todos los dígitos en
my_stringescribiendo un patrón llamadodigits("\d+") y usandore.findall(). Imprime el resultado.
Ejercicio interactivo práctico
Prueba este ejercicio y completa 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.____(____, ____))