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_stringen cada final de frase. Para ello:Escribe un patrón llamado
sentence_endingspara que coincida con los finales de frase (.?!).Utiliza
re.split()para dividirmy_stringen el patrón e imprimir el resultado.
Encuentra e imprime todas las palabras en mayúsculas en
my_stringescribiendo un patrón llamadocapitalized_wordsy 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
spacespara que coincida con uno o más espacios ("\s+") y luego utilizare.split()para dividirmy_stringen este patrón, manteniendo intacta toda la puntuación. Imprime el resultado.Encuentra todos los dígitos en
my_stringescribiendo un patrón llamadodigits("\d+") y utilizandore.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.____(____, ____))