Herramientas de usuario

Herramientas del sitio


otros:regex

¡Esta es una revisión vieja del documento!


Expresiones Regulares

Las expresiones regulares son usadas para encontrar en textos ciertos patrones, ya sea un grupo de palabras que se repite, unos carácteres entre otros…

Basicas 1

En un texto como…

El perro feo se comio 25 cocos con trigo, luego se tiro un peo.


La expresión regular más sencilla es la que indica varios o un sólo carácter:
o
El perro feo...
feo
El perro feo se comio 25 cocos con trigo, luego se tiro un peo.

Podemos elegir “una u otra”, por ejemplo…
feo|peo
El perro feo se comio 25 cocos con trigo, luego se tiro un peo.
Si no indicasemos nada seleccionaría todo.

Un punto significa un carácter cualquiera (excepto el de newline)
.e
El perro feo se comio 25 cocos con trigo, luego se tiro un peo.

Para buscar el punto tendremos que usar el “carácter de escape”
\.
El perro feo se comio 25 cocos con trigo, luego se tiro un peo.
\n Corresponde al newline
\t Corresponde a una tabulación
\b Corresponde al carácter en blanco
^ Es el inicio de línea
\b.e\b
El perro feo se comio 25 cocos con trigo, luego se tiro un peo.
\b.e.\b
El perro feo se comio 25 cocos con trigo, luego se tiro un peo.

Basicas 2

El signo + indica que el carácter que le precede debe aparecer al menos una vez
ho+la encontraría: hola, hoola, hooola.

En cambio el signo * indica que puede o no aparecer una o más veces
0*42 encontraría: 42, 0042, 042.

? indica que ha de aparecer 0 o una vez el carácter que le precede
cas?quivano encontraría caquivano y casquivano.

Los paréntesis indican 'agrupar'
Por ejemplo (p|m)adre encontraría tanto padre como madre. O (des)?amor encontraría amor y desamor.

Los corchetes
Son usados para elegir entre dos letras [tT]he encontraría the, The pero no tHe.
Para indicar rangos [a-z] encontraría todas las minusculas, [a-zA-Z] todas las letras, mayusculas o minusculas. Por ejemplo: [a-zA-B]ola encontraría aola, cola, mola, Bola, bola… pero no 4ola, Cola, %ola… Otro rango sería el [0-9], o simplemente indicar los carácteres (para signos especiales no son necesarios el carácter de escape): [x.+3]avier, encontraría xavier, +avier, .avier, 3avier.

Grupos
Existen palabras que agrupan conjuntos de carácteres, por ejemplo los que encuentran números y letras, espacios en blanco… - Esto no es compatible con todos los sistemas -.

  • [:alnum:] alfanuméricos (letras y números)
  • [:alpha:] alfabéticos (letras)
  • [:cntrl:] de control
  • [:digit:] dígitos
  • [:graph:] gráficos
  • [:lower:] minúsculas
  • [:print:] imprimibles
  • [:punct:] de puntuación
  • [:space:] espacios
  • [:upper:] mayúsculas
  • [:xdigit:] dígitos hexadecimales


Repeticiones
En un texto como este:

Xooo
oXoo
ooXo
oooX

o{3} encontraría: Xooo y oooX
o{2,3} , dos o tres o's, encontraría: Xooo oXoo ooXo oooX ; que es lo mismo que encontraría o{2,}, es decir, 2 o más.

Algunas expresiones regulares
_.*_ La cadena máxima que esté entre dos signos: '_'. Es decir, cogería frases enteras, algo así: “_hola _caracola_ qué haces aquí tan sola?_”
_(.*?)_ Cogería palabras sueltas: “_caracola_”

Archivos y artículos

otros/regex.1248004213.txt.gz · Última modificación: 2020/05/09 09:25 (editor externo)