- Estréllate y Arde - https://www.estrellateyarde.org -
Expresiones regulares
Las expresiones regulares son una forma de describir patrones para la búsqueda de cadenas (dentro de otras o dentro de un archivo ASCII) y se crean combinando caracteres normales con caracteres especiales (wildcards).
Es una forma de trabajar con cadenas muy utilizada en prácticamente todos los lenguajes de programación (como Perl, PHP o JavaScript), en muchos comandos del shell (como grep, sed y awk) así como en archivos de configuración (como Apache o Lighttpd), y en general, son bastante complicadas por lo poco descriptivas que son en sí mismas.
En una expresióon regular podemos encontrar dos tipos de caracteres:
Los caracteres especiales son los siguientes:
Podemos decirle al sistema que trate un carácter especial como si fuera un carácter normal y a la inversa. Para ello lo que haremos será preceder el carácter en cuestión con el carácter "\" y diremos que lo hemos "escapado". Veamos los dos casos:
Expresiones regulares | |||
Patrón | Significado | exp_reg | match |
Cadenas | |||
. | cualquier carácter excepto EOL ("nueva línea") | "." | cualquier carácter excepto EOL |
\ | carácter especial | "\*" "\\" |
"*" "\" |
x | un carácter | "a" "A" "2" |
"a" "A" "2" |
xyz | varios caracteres | "hola" | "hola" |
x|y | un carácter u otro | "a|b" | "a" o "b" |
[xyz] | un carácter que esté en una lista | "[aeiou]" | una vocal |
[a-z] | un carácter que pertenezca a un rango | "[a-z]" "[a-zA-Z]" "[a-z][A-Z]" |
una minúscula una letra una minúscula seguida de una mayúscula |
[ˆx] | cualquier carácter excepto "x" | "[ˆa]" | cualquier carácter excepto "a" |
[ˆxyz] | un carácter que no esté en una lista | "[ˆaeiou]" | una consonante |
[ˆa-z] | un carácter que no pertenezca a un rango | "[ˆa-z]" | una mayúscula |
\w | cualquier carácter alfanumérico incluyendo el guión bajo | equivale a [a-zA-Z0-9_] | |
\W | cualquier carácter no alfanumérico | equivale a [ˆa-zA-Z0-9_] | |
\d | cualquier dígito | equivale a [0-9] | |
\D | cualquier carácter no dígito | equivale a [ˆ0-9] | |
\t | tabulador | ||
\r | retorno de carro | ||
\n | final de línea | ||
\s | cualquier carácter no visible, como tabulador, retorno o espacio | ||
\S | cualquier carácter visible | ||
i | case insensitive, con este modificador no distinguirá entre mayúsculas y minúsculas | "/una/i" | busca "una" sin distinguir entre mayúsculas y minúsculas |
g | global, este modificador se usa para que no se detenga un proceso de sustitución al encontrar la primera ocurrencia | "/a/g" | encontrará todas las "a" para sustituirlas |
(xyz) | recuerda el patrón para su posterior utilización con multiplicadores o referencias | "(x).(ab)" | para referencias posteriores "x"=$1 y "ab"=$2 |
Anclas: posición de la cadena | |||
ˆ | comienzo de línea | "ˆa" "ˆ[aeiou]" "ˆhola" |
"a" al comienzo de una línea una vocal al comienzo de una línea "hola" al comienzo de una línea |
$ | final de línea | "a$" "[aeiou]$" "hola$" "ˆ$" |
"a" al final de una línea una vocal al final de una línea "hola" al final de una línea una línea vacía |
\b | principio o final de una palabra | "\bola" | "ola" al principio o final de una palabra |
Multiplicadores: cuántas veces ha de aparecer la cadena | |||
* | una cadena cero o más veces | "hola*" "hol(as)*" "[a-z]*" |
"hol", "hola", "holaa" "hol", "holas", "holasas" una palabra en minúsculas |
+ | una cadena una o más veces | "hola+" "hol(as)+" |
"hola", "holaa", "holaaa" "holas", "holasas" |
? | una cadena cero o una vez | "hola?" "hol(a)?" |
"hol", "hola" "hol", "holas" |
{n} | una cadena n veces | "a{3}" "(as){3}" |
"aaa" "asasas" |
{n,m} | una cadena entre n y m veces | "a{2,4}" "(as){2,4}" |
"aa", "aaa", "aaaa" "asas", "asasas", "asasasas" |
{n,} | una cadena al menos n veces | "a{2,}" "(as){2,}" |
"aa", "aaa", "aaaa" "asas", "asasas", "asasasas" |
En el entorno gráfico disponemos de varios editores de expresiones regulares:
Article printed from Estréllate y Arde: https://www.estrellateyarde.org
URL to article: https://www.estrellateyarde.org/discover/expresiones-regulares
Click here to print.
Copyright © 2010 Estrellate y Arde