Uso de expresiones regulares para coincidir con HTML
Tags: regex, html, webdev, datascience
Published: 2021-08-23 08:28:59

"Vas a saber lo poderosa que es la expresión regular una vez que la uses". - Un desarrollador suspira de corazón.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f3gnfwaz3fz8bo0db8cj.png)[Fuente](https://fireship.io/lessons/regex-cheat-sheet-js/) 

**¿Qué es una 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 coincidencia de patrones con cadenas, o coincidencia 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 se volvió de uso común con la utilidad de procesamiento de texto de Unix ed (un editor de línea para el sistema operativo Unix), un editor y grep. (una utilidad de línea de comandos para buscar conjuntos de datos de texto sin formato para líneas que coincidan con una expresión regular), un filtro (un programa de computadora o subrutina para procesar una secuencia, produciendo otra secuencia) ". Este es un extracto de [Wikipedia](https://es.wikipedia.org/wiki/Regular_expression) que se utiliza para definir la expresión regular.

**[Sintaxis de expresiones regulares](https://docs.python.org/3/library/re.html)**
Las expresiones regulares se pueden concatenar para formar nuevas expresiones regulares; si A y B son expresiones regulares, AB también es una expresión regular. En general, si una cadena p coincide con A y otra cadena q coincide con B, la cadena pq coincidirá con AB. Esto es válido a menos que A o B contengan operaciones de baja precedencia; condiciones de contorno entre A y B; o tener referencias de grupo numeradas. Por lo tanto, las expresiones complejas se pueden construir fácilmente a partir de expresiones primitivas más simples como las que se describen aquí. 

Las expresiones regulares pueden contener tanto caracteres especiales como ordinarios. La mayoría de los caracteres ordinarios, como 'A', 'a' o '0', son las expresiones regulares más simples; simplemente se emparejan a sí mismos. Puedes concatenar caracteres ordinarios, por lo que último coincide con la cadena 'último'. (En el resto de esta sección, escribiremos RE en este estilo especial, generalmente sin comillas, y las cadenas deben coincidir 'entre comillas simples').

**¿Qué puedes hacer con RegEx?**
Las expresiones regulares se pueden utilizar para hacer coincidir etiquetas HTML y extraer los datos en documentos HTML.

A continuación, se muestran algunos casos de uso de RegEx:

[Uso de RegEx para extraer correos electrónicos](http://www.octoparse.es/blog/extraer-email-de-cadenas-o-archivos-txt)
[Uso de RegEx para extraer números de teléfono](https://octoparse.com/blog/regex-how-to-extract-all-phone-numbers-from-strings)
[RegEx para reformatear los datos extraídos](http://www.octoparse.es/tutorial-7/re-format-data-extracted)
 

HTML se compone virtualmente de cadenas, y lo que hace que la expresión regular sea tan poderosa es que una expresión regular puede coincidir con diferentes cadenas.

Es cierto que una expresión regular no es la primera opción para analizar HTML correctamente, porque existen algunos errores comunes, como etiquetas de cierre faltantes, algunas etiquetas no coincidentes, etc. al analizar HTML con expresión regular. Además, es más probable que los programadores usen otros analizadores HTML perfectamente buenos como PHPQuery, BeautifulSoup, html5lib-Python, etc. Pero si deseas hacer coincidir rápidamente etiquetas HTML y sabes un poco sobre la sintaxis de expresiones regulares, es fácil de aprender pero difícil para dominar, puedes utilizar esta herramienta increíblemente conveniente para identificar patrones en documentos HTML.

Se recomienda encarecidamente a todo programador o alguien que desee extraer datos web que aprenda expresiones regulares porque esta herramienta mejora la eficiencia y la productividad de tu trabajo.

Veamos algunos **ejemplos**:

Expresiones regulares para coincidir con las etiquetas HTML:

<(.*)>.*?|<(.*) />

<(\S*?)[^>]*>.*?</\1>|<.*?/>

Expresión regular para coincidir con todas las etiquetas TD:

<td\s*.*>\s*.*<\/td> 

Expresión regular para coincidir con img src = "test.gif" :

<[a-zA-Z]+(\s+[a-zA-Z]+\s*=\s*("([^"]*)"|'([^']*)'))*\s*/>

Podemos hacer coincidir una variedad de etiquetas HTML mediante el uso de una expresión regular y, por lo tanto, extraer datos fácilmente en documentos HTML.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3exaxebzib1vi5ifbtkw.png)([Descargar Octoparse](https://octoparse.es/download/windows) - Abrir el software - Hacer clic en el icono de la caja de herramientas en la esquina inferior izquierda)

Herramienta RegEx gratuita - **Octoparse**
[Octoparse](https://octoparse.es/), una herramienta de recopilación de datos web visual, proporciona una herramienta para generar expresiones regulares. Puede generar fácilmente algunas expresiones regulares simples para satisfacer tus diferentes necesidades de extraer contenido en documentos HTML. Además, Octoaprse es totalmente compatible con la verificación de expresiones regulares personalizadas.