Intro To Regex Featured

La guía para principiantes de expresiones regulares

¿Alguna vez has tratado de 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 textos, 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 carácter. Se llama expresiones regulares (RegEx) y le permite convertirse en un maestro de la búsqueda a través del texto.

¿Dónde puedo usar RegEx?

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

expresiones regulares

Las expresiones regulares se usan más notablemente en varios programas notables de Linux, que incluyen grep, Awk y Sed.

Por ejemplo, es posible que desee comprobar los dispositivos USB de su PC. Usando lspci, verá una lista de todos los dispositivos y tendrá que localizar las entradas USB usted mismo. En su lugar, podría 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 la terminal. Por ejemplo, para enumerar todos los archivos JPG en una carpeta, podría usar:

El equivalente RegEx de lo anterior sería:

Introducción al filtro Regex Jpgs

Para buscar archivos jpg y png, use:

ls | grep -E "(\.jpg|\.png)"

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, utiliza [a-z] como su patrón, esto coincidiría con cualquier cadena que consista en 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 llaves. {5} devolvería cinco ocurrencias de su patrón. También puede usar rangos de números, por lo que {5,10} le presentaría de cinco a diez instancias.

metacaracteres

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

El principal es el punto simple, que representa cualquier otro carácter único. Si usaste el patrón c.llcoincidiría con «celular», pero también con «cull» y «call».

Al ingresar un asterisco después de un punto, puede usarlo para hacer coincidir una cantidad infinita de caracteres. Por ejemplo, .*board coincidirá con «teclado» y «monopatín». 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 escapas de 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.

Anclajes y límites

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

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

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

Entonces, si quisiera encontrar solo las entradas donde aparece la palabra «computadora» al comienzo de una línea, su patrón se vería así ^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 precisamente 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, usando una sola cadena de texto.

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

Experto Geek - Tu Guía en Tendencias Tecnológicas