Si ya ha trabajado con datos basados en texto, no le será ajeno el modo en que un conjunto de datos desordenado puede hacerle la vida imposible. El hecho de que la mayoría de los datos del mundo vengan en forma no estructural es una fea verdad que hay que conocer tarde o temprano. En este post, hablaremos sobre qué es RegEx (expresión regular), qué puedes hacer con RegEx, y algunos ejemplos específicos con una herramienta RegEx gratuita.
Qué es la Expresión Regular (RegEX)
“Una expresión regular (a veces llamada expresión racional) es una secuencia de caracteres que definen un patrón de búsqueda, principalmente para su uso en la concordancia de patrones con cadenas, o concordancia de cadenas, es decir, operaciones similares a “buscar y reemplazar“. El concepto surgió en la década de 1950, cuando el matemático estadounidense Stephen Kleene formalizó la descripción de un lenguaje regular y pasó a ser de uso común con la utilidad de procesamiento de texto Unix ed (un editor de líneas para el sistema operativo Unix), un editor, y grep (una utilidad de línea de comandos para buscar en conjuntos de datos de texto plano líneas que coincidan con una expresión regular), un filtro (un programa informático o subrutina para procesar un flujo, produciendo otro flujo).” Este es un extracto de Wikipedia utilizado para definir la expresión regular.
Aunque suene oscuro, el concepto es bastante fácil de entender. Digamos que quieres encontrar una determinada película en Netflix, probablemente buscarías con el título de la película o incluso parte del título. El motor de búsqueda de Netflix buscará cualquier película cuyo título coincida con lo que has introducido en el cuadro de búsqueda y te mostrará una lista de resultados que coincidan con tus palabras clave de búsqueda. Del mismo modo, las expresiones regulares son como las palabras que has utilizado para buscar la película que quieres encontrar.
Esencialmente, las expresiones regulares son patrones de texto que puedes utilizar para hacer coincidir elementos o reemplazar elementos a lo largo de cadenas de texto. RegEx puede ser más poderoso de lo que piensas debido a lo increíblemente flexible que es para limpiar datos basados en texto.
¿Qué Puede Hacer con RegEX?
En resumen, las expresiones regulares se pueden utilizar para hacer coincidir etiquetas HTML y extraer los datos de los documentos HTML.
Casos comunes de uso de RegEx
Las expresiones regulares son útiles para encontrar patrones de texto comunes, como correos electrónicos, números de teléfono, códigos postales, etc.
- Uso de RegEx para extraer correos electrónicos
- Uso de RegEx para extraer números de teléfono
- Refinar los datos extraídos
El HTML está prácticamente formado por cadenas, y lo que hace que una expresión regular sea tan potente es que puede coincidir con diferentes cadenas. Hay que admitir que el uso de expresiones regulares para el análisis sintáctico de HTML puede dar lugar a errores como la falta de etiquetas de cierre, la falta de coincidencia de algunas etiquetas, etc. Es más probable que los programadores utilicen otros analizadores HTML como PHPQuery, BeautifulSoup, html5lib-Python, etc.
Sin embargo, si quieres hacer coincidir rápidamente etiquetas HTML, puedes utilizar esta herramienta increíblemente práctica para identificar patrones en documentos HTML. Se recomienda encarecidamente a todo programador o a cualquiera que desee extraer datos web que aprenda sobre expresiones regulares por cómo esta herramienta es capaz de mejorar enormemente la eficiencia y la productividad del trabajo.
Veamos algunos ejemplos de expresiones regulares para emparejar HTML tags.
- Expresiones regulares para la búsqueda de HTML tags:
<(.)>.?|<(.) />
<(\S?)[^>]>.?|<.*?/>
- Expresión regular para todas las etiquetas TD:
<td\s*.*>\s*.*<\/td>
- Expresión regular para que coincida con <img src=”test.gif”/>:
<[a-zA-Z]+(\s+[a-zA-Z]+\s=\s(“([^”])”|'([^’])’))\s/>
Podemos hacer coincidir una gran variedad de etiquetas HTML utilizando una expresión regular de este tipo y, por lo tanto, extraer fácilmente datos en documentos HTML.
También puede consultar esta Hoja de Expresiones Regulares para tener una referencia rápida de RegEx.
Además, aquí hay algunas populares herramientas de prueba y depuración de RegEx en línea para ayudar a generar o verificar las expresiones correctas:
- Comprobador de regex
- Regex 101: construir, probar y depurar regex
- RegExr: Aprenda, construya y pruebe RegEx
Si necesita raspar y reformatear datos web al mismo tiempo, descargue Octoparse, una herramienta RegEx gratuita y lista para usar. Solo tiene que abrir el software y hacer clic en el icono Herramientas del menú de la barra lateral.
Herramienta RegEx Gratuita – Octoparse
Con Octoparse, la mejor herramienta de web scraping, puede utilizar RegEx para emparejar/reemplazar caracteres en un valor de campo para refinar los datos extraídos directamente.
La herramienta RegEx de Octoparse es una herramienta incorporada que ofrece una forma práctica de generar Expresiones Regulares automáticamente configurando varios criterios. Cuando se sabe poco sobre cómo crear la sintaxis de una expresión regular, la herramienta RegEx resulta especialmente útil.
En Octoparse, hay dos formas de acceder a la herramienta RegEx:
Método 1: Dentro de las opciones de Octoparse Clean Data
- Seleccione el campo de datos que desea personalizar
- Haga clic en … y seleccione Limpiar datos.
- Haga clic en Añadir paso
- Elija Reemplazar con expresión regular o Coincidir con expresión regular
- Haga clic en ¿No está seguro de RegEx? Pruebe la herramienta RegEx.
Método 2: Desde la barra de navegación lateral
- Seleccione el icono Herramientas de la parte inferior de la barra lateral de navegación
- Haga clic en Herramienta RegEx.
- En los siguientes 2 casos, usted descubrirá cómo funciona la herramienta RegEx en Octoparse.
Caso 1: Usar caracteres cercanos para localizar el texto
Si desea obtener la información de calificación del siguiente HTML, puede utilizar la herramienta RegEx de Octoparse para hacer coincidir los elementos utilizando los caracteres cercanos Empieza por y Termina por.
Caso 2: Escribir RegEx para extraer información específica (como email, sitios web, etc)
Si quieres extraer emails del código fuente (especialmente para algunas URLs que comparten diferentes estructuras), puedes usar la RegEx de abajo directamente para hacer coincidir el email. Puedes probar y depurar tus expresiones regulares inmediatamente con la herramienta.