Hoja de trucos de expresiones regulares

Hoja de trucos de expresiones regulares 00 Imagen destacada

Si trabajas con texto, apreciarás lo útiles que son las expresiones regulares. Estos son pequeños caracteres de texto que te permiten crear reglas elaboradas sobre cómo luce una palabra. Estas reglas pueden ser tan simples como hacer coincidir una sola letra en un documento o algo complejo como buscar cada palabra que comienza con “a” y “c” pero termina en “ismo”.

Descarga esta hoja de trucos

Ingresa tu correo electrónico a continuación para recibir esta hoja de trucos en PDF en tu bandeja de entrada.

Expresiones Regulares Esenciales

Las expresiones regulares (o regex para abreviar) están en todas partes en entornos Linux para buscar a través de texto hasta el carácter. Esta hoja de trucos de expresiones regulares será útil para las personas que simplemente necesitan un pequeño repaso de vez en cuando.

Sin embargo, una cosa importante a tener en cuenta es que el conjunto de expresiones regulares utilizables depende en gran medida del tipo de estándar que utiliza un software. Por ejemplo, las terminales Linux comunes a menudo usan el estándar POSIX, mientras que Vim y Perl usan definiciones no estándar.

MetacaracterDescripciónEjemplo
Coincidencia de Caracteres
ABusca cualquier instancia de la letra “a” en un documento y hazla coincidir.a coincide con “ant”, “cat” y “anna”.
.Coincide con cualquier carácter único, excepto los caracteres de control.c.t coincide con “cat”, “cut” o “cot”.
*Repite la expresión anterior 0 o más veces (modo greedy).12*3 coincide con “13”, “123”, “1223”, “12223”. Se puede usar junto con “.” como m.*easier que coincide con “maketecheasier”. Usar .* por sí solo no tiene sentido, ya que coincide con todo y devuelve el resultado completo.
+Repite la expresión anterior 1 o más veces.12+3 coincide con “123”, “1223”, “12223”.
?Hace que el elemento anterior sea opcional.ma?ke coincide con “make”, “mke”.
^Coincide desde el comienzo de la cadena.^he coincide con “hello”, “hell”, “help”, “he is a boy”.
$Coincide desde el final de la cadena.ed$ coincide con “acted”, “bed”, “greed”.
Coincidencia de Rangos
( … )Agrupación de caracteres o expresión.(ak) coincide con “make”, “take”.
{ n }Coincide con el elemento anterior exactamente n veces.12{3}5 coincide con “12225”.
[ … ]Coincide con un solo carácter en el corchete.[abc] coincide con “a”, “b” o “c” en la cadena “abc”.
[^ … ]Coincide con cualquier carácter excepto aquellos que están definidos en el corchete.a[^b]c coincide con “aec”, “acc”, “adc”, pero no con “abc”.
Coincidencia de Clase (POSIX)
[:alpha:]Busca cualquier carácter en el alfabeto inglés y hazlo coincidir.[[:alpha:]]ut coincidirá con las palabras “but”, “cut” y “rut”.
[:alnum:]Busca cualquier carácter y número y hazlo coincidir.[[:alnum]]tack coincidirá con “stack” y “5tack”.
[:blank:]Busca una instancia de un tabulador o un espacio y hazla coincidir.[[:blank:]]Hello coincidirá con ” Hello”.
[:space:]Busca cualquier carácter de espacio en blanco y hazlo coincidir.[[:space:]]World coincidirá con ” World”.
[:upper:]Busca cualquier letra mayúscula y hazla coincidir.[[:upper:]]+ coincidirá con las palabras “HELLO”, “FAntastic” y “wORld”.
[:lower:]Busca cualquier letra minúscula y hazla coincidir.[[:lower:]]+ coincidirá con las palabras “heLLO”, “FAntastic” y “world”.
[:punct:]Busca cualquier carácter de puntuación y hazlo coincidir.\w+[[:punct:]] coincidirá con las siguientes palabras: “Hey!”, “Hi.” y “You?”.
[:cntrl:]Busca cualquier carácter de control y hazlo coincidir.\w+[[:cntrl:]]$ coincidirá con las siguientes palabras: “end^M”, “word^M” y “this^M”.
[.ng.]Busca cualquier dígrafo de “ng” y hazlo coincidir.bad[.zh.] coincidirá con la palabra “badge”.
[=n=]Encuentra y haz coincidir todas las letras diacríticas de “n”.[=a=]\w+ coincidirá con las palabras “ànna”, “ápple” y “âble”.
Coincidencia de Clase (Perl/Vim)
\BBusca cualquier carácter que no sea un límite de palabra y hazlo coincidir.\B+\b coincidirá con “o ” en “hello ” así como con ” h” en ” hi”.
\wBusca cualquier letra y número, luego hazlo coincidir.\w{5} coincidirá con la siguiente combinación de letras y números: “world”, “12345” y “w0r1d”.
\WBusca cualquier símbolo y hazlo coincidir.\w{2}\W\b coincidirá con las siguientes palabras: “as.”, “ha!” y “me?”.
\dBusca cualquier número y hazlo coincidir.\d{3} coincidirá con los siguientes números: “111”, “777” y “888”.
\DBusca cualquier carácter que no sea un número y hazlo coincidir.\D{3} coincidirá con las siguientes letras y símbolos: “ant”, “ba!” y “!#*”.

| \s | Busca cualquier carácter de espacio en blanco y hazlo coincidir. | a\w+(i|y)sm\s coincidirá con las siguientes palabras: “altruismo “, “albinismo ” y “aneurisma “. | | \S | Busca cualquier carácter que no sea un espacio en blanco y hazlo coincidir. | \S{5} coincidirá con lo siguiente: “123hi”, “hi!^&” y “ | | \A | Encuentra el comienzo de una palabra independientemente de si no está al principio de una línea. | \A{2} coincidirá con “He” y “wo” en “Hello world”. | | \Z | Encuentra el final de una palabra independientemente de si no está al final de una línea. | \z{2} coincidirá con “lo” y “ld” en “Hello world”. | | Caracteres de Control | | | | | | Coincide con la expresión a la izquierda o a la derecha de la barra. | col(o|ou)r coincide con “color”, “colour”. | | – | Especifica un rango de caracteres para hacer coincidir. Usado mayormente en [a-z], [A-Z],[1-9],[a-zA-Z1-9]. | a[a-z]c coincide con “abc”, “acc”, “adc”. | | \ | Escapa un carácter especial y lo convierte en un carácter ordinario. | a\*c coincide con “ac”. | | \n, \r, \t | Coincide con un salto de línea, regreso y tabulación respectivamente. | \w{5}\t\w{5}(\n|\r) coincidirá con “Hello World”. | | \b…\b | Coincide con una palabra dentro del límite. | \bTech\b coincide con la palabra “Tech” en “Make Tech Easier”. | | *Expresiones Complejas | | | | [0-9]{3}-[0-9]{4} | Busca cualquier secuencia de números de tres y cuatro dígitos y hazla coincidir. | Esta expresión coincidirá con la siguiente combinación de números: “123-1234”, “111-1111” y “777-1234”. | | ([0-9]{3}-)?[0-9]{3}-[0-9]{4} | Coincide con dos números de tres dígitos y un solo número de cuatro dígitos. | Esta expresión coincidirá con las siguientes combinaciones: “123-123-1234”, “000-111-0001” y “777-5678”. | | .{1,3} | Busca cualquier palabra que tenga entre uno y tres caracteres de longitud. | Esta expresión coincidirá con las siguientes palabras: “at”, “it” y “can”. | | ([A-Z])\w+ | Coincide con cualquier palabra que comience con una letra mayúscula. | Esta expresión coincidirá con las siguientes palabras: “Hello”, “World” y “Hey”. | | e[([:digit:]|[:alnum:])]c | Coincide con cualquier carácter alfanumérico entre “e” y “c”. | Esta expresión coincidirá con las siguientes combinaciones: “e1c”, “e5c” y “e7c”. | | [^0-9[:upper:]]+ | Busca cualquier palabra completamente en mayúsculas que no comience con un número. | Esta expresión coincidirá con las siguientes palabras: “HELLO”, “WORLD” y “HEY”. | | “.+” | Encuentra una palabra entre comillas y hazla coincidir. | Esta expresión coincidirá con la siguiente cita: “¡Hola, mundo!”. |

Créditos de la imagen: Unsplash