Un ejemplo práctico de uso de Regex para el análisis de texto es la extracción de direcciones de correo electrónico de un texto. Supongamos que tenemos el siguiente texto:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod tempus dolor, ut gravida lorem suscipit vel. Fusce aliquet elit sem, a lacinia est egestas et. Suspendisse malesuada enim ut odio convallis molestie. Ut eget tincidunt turpis. Praesent at commodo nisi, eget gravida magna. Nam commodo, tortor ut venenatis mollis, nulla lorem porttitor ipsum, a laoreet ligula est a est. Quisque ornare, libero sed ultrices egestas, neque elit lacinia elit, vel tincidunt mi quam at ex. Nullam commodo libero sed velit vehicula eleifend. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed accumsan tincidunt dapibus. Etiam ac sapien eu nisi varius semper. Aenean vitae augue sit amet elit luctus auctor. Nulla facilisi. Contacta con nosotros para más información: info@example.com o soporte@ejemplo.com.
Para extraer las direcciones de correo electrónico presentes en este texto, podemos utilizar una expresión regular (Regex) que identifique los patrones que corresponden a una dirección de correo electrónico. En Python, podemos hacerlo de la siguiente manera:
import re
texto = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod tempus dolor, ut gravida lorem suscipit vel. Fusce aliquet elit sem, a lacinia est egestas et. Suspendisse malesuada enim ut odio convallis molestie. Ut eget tincidunt turpis. Praesent at commodo nisi, eget gravida magna. Nam commodo, tortor ut venenatis mollis, nulla lorem porttitor ipsum, a laoreet ligula est a est. Quisque ornare, libero sed ultrices egestas, neque elit lacinia elit, vel tincidunt mi quam at ex. Nullam commodo libero sed velit vehicula eleifend. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed accumsan tincidunt dapibus. Etiam ac sapien eu nisi varius semper. Aenean vitae augue sit amet elit luctus auctor. Nulla facilisi. Contacta con nosotros para más información: info@example.com o soporte@ejemplo.com."
patron_correo = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
direcciones_correo = re.findall(patron_correo, texto)
print(direcciones_correo)
El resultado de la ejecución de este código será una lista con las dos direcciones de correo electrónico encontradas en el texto:
['info@example.com', 'soporte@ejemplo.com']
En este ejemplo, la expresión regular \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b identifica patrones que tienen la estructura de una dirección de correo electrónico válida. Esta expresión regular utiliza una combinación de caracteres especiales y convencionales para identificar patrones específicos en un texto, y gracias a ella podemos extraer información relevante de un texto de manera automatizada.