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 y le permite convertirse en un maestro en la búsqueda de texto.

Si ha prestado atención a las utilidades de Linux, probablemente observe que con frecuencia utilizan algo llamado expresiones regulares. Aunque Unix y Linux los hicieron populares, las expresiones regulares están disponibles en una variedad de paquetes, incluido Microsoft Word.

Las expresiones regulares se utilizan sobre todo en varios programas notables de Linux, incluidos grep (que significa Global Regular Expression Print), Awk y Sed.

Es mejor pensar en las expresiones regulares como un pequeño lenguaje, cuyos conceptos básicos se pueden describir en un espacio reducido.

Puede buscar utilizando herramientas como Grep o Ack desde la entrada estándar o desde un archivo de texto.

Por ejemplo, si estuviera intentando encontrar el término «Firefox» en la salida del comando ps, así es como lo haría:

Y así es como encontraría el término «hacer más fácil» en un archivo.

Metacaracteres

En las expresiones regulares, también puede buscar partes de una cadena. La forma en que harías esto es con dos personajes. En realidad, se les llama metacaracteres. Son similares a las coincidencias de comodines que podría haber usado en el shell.

  • «.» representa un solo carácter. El patrón «ct» coincide con las palabras «gato», «corte» y «cuna». por ejemplo.
  • El metacarácter «*» significa encontrar el carácter anterior 0 o más veces. El patrón «l. * X» encontraría «linux», así como cualquier otra palabra que se ajustara al mismo patrón.

La razón por la que no puedes usar algo como "l*x" como lo haría en el shell es porque hacer coincidir 0 o más caracteres significa que encontrará líneas que no tienen una «l» seguida de ningún otro carácter. En otras palabras, cualquier línea que intente coincidir, lo cual es absolutamente inútil.

Encontrar patrones al principio o al final

También puede encontrar patrones que comienzan al principio o al final de las líneas.

  • El carácter «^» coincide con el principio
  • El «$» coincidió al final.

Por ejemplo, "sier$" coincidiría con «Hacer que la tecnología sea más fácil» y "^Make" coincidiría con «Make».

Encontrar coincidencia en un rango

También puedes meterte en personajes más complicados. Todo lo que ponga entre corchetes se combinará como un rango. Por ejemplo, «[a-z]”Coincide con todas las letras minúsculas. «[a-zA-Z]”Coincide con todas las letras. «[a-zA-Z0-9]”Coincide con caracteres alfanuméricos. Dentro de los corchetes, el carácter «^» niega cualquier cosa. «[^a-zA-Z]”Coincide con cualquier cosa que no sea una letra.

También puede encontrar límites de palabras con el «<«Y»>» caracteres. El patrón «<Linux>”Coincide con“ Linux ”, obviamente.

Puede hacer coincidir algo una cantidad específica de veces con llaves. «{3}«Coincide con algo tres veces y»{3,5}”Coincide con algo entre 3 y 5 veces.

Con estos simples bloques de construcción, puede combinar algunas cosas bastante complicadas. Las expresiones regulares son mucho más de lo que se puede explicar en un artículo breve. Si desea un tratamiento completo del tema en un libro, definitivamente debe consultar Dominar las expresiones regulares por Jeffrey EF Friedl.

Divulgación: este artículo contiene un enlace de afiliado. Si bien solo escribimos sobre productos que creemos que merecen estar en este sitio, Make Tech Easier puede ganar una pequeña comisión si hace clic y compra el producto en cuestión.

Credito de imagen: xkcd

Categorías PC

Deja un comentario