Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.
El de las expresiones regulares es uno de los capítulos más farragosos de los sistemas GNU/Linux pero que más atención merece, y dominarlas supone extender muy mucho las prestaciones de la consola de comandos. Vendrían a ser como una versión avanzada de los caracteres comodín y unas posibilidades exponencialmente mayores.
No tiene mayor secreto que aprenderlas y, luego, practicar para averiguar hasta qué punto podemos usarlas en búsquedas, sustituciones de texto o scripts. Las dividiremos en metacaracteres, anclas y multiplicadores.
Metacaracteres
Son conjuntos de caracteres dentro de una expresión regular y con un significado o función específicos
Se refieren a la posición de la cadena.
Aluden a cuantas veces aparece en la cadena.
El de las expresiones regulares es uno de los capítulos más farragosos de los sistemas GNU/Linux pero que más atención merece, y dominarlas supone extender muy mucho las prestaciones de la consola de comandos. Vendrían a ser como una versión avanzada de los caracteres comodín y unas posibilidades exponencialmente mayores.
No tiene mayor secreto que aprenderlas y, luego, practicar para averiguar hasta qué punto podemos usarlas en búsquedas, sustituciones de texto o scripts. Las dividiremos en metacaracteres, anclas y multiplicadores.
Metacaracteres
Son conjuntos de caracteres dentro de una expresión regular y con un significado o función específicos
. : equivale a cualquier carácter.
( ) : sirve para agrupar patrones (subexpresiones o grupos).
[ ] : equivale a un carácter cualquiera de los contenidos entre corchetes.
[ - ] : equivale a un rango de caracteres.
[^ ] : excluye los caracteres que figuran entre corchetes.
{ } : introduce patrones de repetición.
| : permite elegir entre dos expresiones.
// : delimita una expresión regular.
\ : equivale a cualquier carácter excepto fin de línea.
\w: equivale a cualquier carácter alfanumérico y carácter _.
\W: equivale a cualquier carácter no alfanumérico.
\d: equivale a cualquier dígito.
\D: equivale a cualquier carácter no dígito.
\S: equivale a cualquier carácter menos espacio en blanco.
i: modificador para no distinguir entre mayúsculas y minúsculas.
!: excluye el carácter siguiente.Veamos algunos ejemplos:
[a-z]: equivale a un rango de letras minúsculas entre la a y la z.
[0-9]: equivale a un rango de dígitos entre 0 y 9.
[A-Za-z]: equivale a una letra cualquiera, ya sea mayúscula o minúscula.
[A-Z][a-z]: equivale a una letra mayúscula seguida de una minúscula.
[^c]: excluye el carácter c, cualquier letra que no sea la c.
[^aeiou]: excluye las vocales, es decir, equivale a cualquier consonante.
[a|b]: equivale a la letra a o a la letra b.
\w: equivale a [a-zA-Z0-9_].
\W: equivale a [^a-zA-Z0-9_].
/hola/i: representa "hola" sin distinguir mayúsculas y minúsculas.
\d: equivale a [0-9].
[!a-c]: equivale letra minúscula que no es ni a ni b ni c.Anclas
Se refieren a la posición de la cadena.
^: comienzo de línea.
$: final de línea.
\b: principio o final de palabra.
\B: posición que no es ni al comienzo ni al final de la palabra.
<>: equivale a una palabra.Multiplicadores
Aluden a cuantas veces aparece en la cadena.
*: repite entre cero y más veces el carácter o subexpresión previos.
+: repite entre uno y más veces el carácter o subexpresión previos.
?: repite entre cero y una vez el carácter o subexpresión previos.
{n}: repite "n" veces el carácter o subexpresión previos.
{n,m}: repite entre "n" y "m" veces el carácter o subexpresión previos.
{n,}: repite al menos "n" veces el carácter o subexpresión previos.Sigamos con los ejemplos de anclas y multiplicadores:
^[aeiou]: una vocal al comienzo de una línea.
[aeiou]$: una vocal al final de una línea.
hola$: "hola" al final de una línea.
^$: línea vacía.
\balon: "balon" al principio o final de línea.
hola*: "hol", "hola", "holaa".
[a-z]*: una palabra en minúsculas.
^Una vez*arbol$: una línea que comienza con "una vez" y termina con "arbol".
^Una vez*[Aa]rbol$: una línea que comienza con "una vez" y termina con "Arbol" o "arbol".
hola+: "hola", "holaa", "holaaa", etc.
a{4}: "aaaa".
a{2,4}: "aa", "aaa", "aaaa".
a{2,}: "aa", "aaa", "aaaa", etc.Lo se, un post como este valdría para ahuyentar a cualquier novato que quisiera entrar en el mundo de GNU/Linux. Quizá las expresiones regulares no sean necesarias para administrar una red doméstica o de una pequeña PYME, pero a niveles más avanzados son muy utilizadas y hacerse con ellas es fundamental. Recomiendo usar Google para encontrar construcciones más complejas y sus correspondientes explicaciones. Les dejo con un vídeo tutorial donde les explican un uso se le puede dar a las expresiones regulares.
No hay comentarios:
Publicar un comentario