Expresiones regulares
Hay una serie de caracteres que son útiles en las expresiones regulares:
Símbolo | Descripción |
---|---|
. |
Cualquier caracter |
[char] |
Cualquier caracter del set |
[^char] |
Cualquier caracter no incluido en el set |
^ |
Principio de la línea |
$ |
Final de la línea |
\w |
Una palabra = [A-Za-z0-9_] |
\s |
Cualquier espacio en blanco = [ \f\t\n\r] |
\d |
Dígito = [0-9] |
| |
OR - elemento a la izquierda o a la derecha |
(expr) |
Agrupa y limita los elementos capturables |
? |
0 o 1 instanciaa del caracter precedente |
* |
0 o muchas instancias del caracter precedente |
+ |
1 o muchas instancias del caracter precedente |
{n} |
n instancias del caracter precedente |
{m,} |
Al menos m instancias del caracter precedente |
{m,M} |
De m a M instancias del caracter precedente |
NOTA: *
no se usa igual que en shell globbing, porque requiere un elemento precedente; el equivalente en regex sería .*
.
El matching se realiza de forma avariciosa (greedy) por defecto; se intenta hacer un match con todo, y después se va retrocediendo hasta que se llega a lo mínimo útil. La variante perezosa (lazy) de *
es *?
, y la de +
es +?
.
Otros ejemplos:
Ejemplo | Descripción |
---|---|
[tT]he |
Reconoce The y the |
^$ |
Reconoce líneas en blanco |
^\d{5}& |
Reconoce números de 5 dígitos |