La guía para principiantes de expresiones regulares

¿Alguna vez ha intentado encontrar un patrón recurrente en un texto? Es posible que haya utilizado algo como la función de búsqueda en su navegador o procesador de texto, pero cuando necesita encontrar algo más complejo, puede ser como encontrar una aguja en el proverbial pajar.

Afortunadamente, hay una manera de seleccionar patrones precisos en el texto hasta el personaje. Se llama expresiones regulares (RegEx) y le permite convertirse en un maestro en la búsqueda de texto.

¿Dónde puedo usar RegEx?

Aunque Unix y Linux los hicieron populares, las expresiones regulares están disponibles en una variedad de paquetes, incluido Microsoft Word.

expresiones regulares

Las expresiones regulares se utilizan sobre todo en varios programas notables de Linux, incluidos grep, Awk y Sed.

Por ejemplo, es posible que desee verificar los dispositivos USB en su PC. Utilizando lspci, verá una lista de todos los dispositivos y tendrá que ubicar las entradas USB usted mismo. En su lugar, puede usar lo siguiente para mostrar solo los dispositivos USB:

Este es el ejemplo más simple de RegEx en acción. Es la forma más popular de usar expresiones regulares en la terminal, pero no la única. Hoy en día, puede encontrar compatibilidad con RegEx en muchos tipos diferentes de software, desde editores de texto hasta administradores de archivos.

Encontrar patrones

Probablemente hayas usado el * carácter, que actúa como comodín al seleccionar archivos o carpetas en el terminal. Por ejemplo, para enumerar todos los archivos JPG en una carpeta, puede usar:

El equivalente de RegEx de lo anterior sería:

Introducción a los JPEG del filtro Regex

Para buscar archivos jpg y png, utilice:

Rangos

Si desea buscar un rango específico de caracteres en lugar de un patrón, puede hacerlo definiéndolo entre paréntesis. Si, por ejemplo, usa [a-z] como patrón, esto coincidiría con cualquier cadena que consta de letras minúsculas del alfabeto.

Como habrás adivinado, [A-Z] seleccionaría solo letras mayúsculas. Para elegir cualquier rango de letras, tanto en mayúsculas como en minúsculas, la expresión cambiaría a [a-zA-Z].

Para ubicar un número específico de instancias de su patrón, puede indicarlo entre corchetes. 5 devolvería cinco apariciones de su patrón. También puede utilizar rangos de números, por lo que 5,10 le presentaría de cinco a diez casos.

Metacaracteres

En las expresiones regulares, también puede buscar partes de una cadena con dos caracteres llamados metacaracteres. Son similares a las coincidencias de comodines que podría haber usado en el shell.

El principal es el punto simple, que representa cualquier otro carácter individual. Si usaste el patrón c.ll, coincidiría con “celda”, pero también con “selección” y “llamada”.

Al ingresar un asterisco después de un punto, puede usarlo para hacer coincidir un número infinito de caracteres. Por ejemplo, .*board será una combinación para “teclado” y “patineta”. incluso si “key” y “skate” tienen un número diferente de letras.

Escapar

Es posible que haya notado que en nuestro ejemplo, donde seleccionamos diferentes tipos de archivos de imagen, usamos barras invertidas antes del punto (” .jpg”). Así es como se escapan los caracteres especiales en RegEx.

Si no los usáramos, nuestro patrón no coincidiría solo con las extensiones de los archivos, cadenas como “.jpg” y “.png”, sino que también coincidiría con “ajpg” y “opng”. Recuerda, . es un comodín que coincide con cualquier carácter.

Anclas y límites

Los anclajes y los límites le permiten definir con mayor precisión lo que está buscando.

Para encontrar solo la palabra “computadora”, sin otros caracteres adjuntos antes o después, debe definir el patrón como <computer>.

También puede buscar específicamente patrones que aparecen al principio o al final de la línea. Esto se logra con el ^ y $ personajes respectivamente.

Por lo tanto, si quisiera buscar solo las entradas donde aparece la palabra “computadora” al comienzo de una línea, su patrón se vería como ^computer. Por el contrario, cuando está al final de la línea, el patrón cambiaría a computer$.

Esas son las reglas simples de RegEx, que también puede combinar para encontrar con precisión los patrones que está buscando. Puede buscar rangos de caracteres al principio de una línea o palabras alternas al final, fechas específicas o un rango de años, utilizando una sola cadena de texto.

No olvide consultar nuestra hoja de referencia de Expresiones regulares para dominar las expresiones regulares.

¿Es útil este artículo?

¡Ayúdanos a correr la voz!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *