Clases de caracteres Regex
Construcciones de clase de caracteres
Una clase de carácter le permite especificar un conjunto de caracteres, entre corchetes, que pueden producir una coincidencia de un solo carácter. Una clase de carácter coincide con un solo carácter. Por ejemplo,
gr[ae]y
coincidirá con gray
o grey
, pero no para graay
o graey
. El orden de los caracteres dentro de los corchetes no importa.Puede utilizar un guión dentro de una clase de caracteres para especificar un rango de caracteres. Ejemplo:
[a-z]
coincide con una sola letra minúscula entre a
y z
. También puede usar más de un rango o una combinación de rangos y caracteres únicos. Ejemplo: [0-9X]
coincide con un dígito numérico o con la letra X
. El orden de los caracteres y los rangos no importa.Un signo de intercalación después de un corchete de apertura especifica los caracteres que se excluirán de una coincidencia. Por ejemplo,
[^abc]
coincide con cualquier carácter excepto a
, b
, o c
.Construir | Tipo | Descripción |
|---|---|---|
[
abc ] | Simple | Coincidencias a o b o c
|
[^abc]
| Negación | Coincide con cualquier carácter excepto a o b o c
|
[a-zA-Z]
| Rango | Coincidencias a hasta z , o A hasta Z (inclusive) |
[a-d[m-p]]
| Unión | Coincidencias a hasta d , o m hasta p
|
[a-z&&[def]]
| Intersección | Coincidencias d , e , o f
|
[a-z&&[^xq]]
| Resta | Coincidencias a hasta z , excepto para x y q
|
Clases de caracteres predefinidas
Las clases de caracteres predefinidas son abreviaturas prácticas para las expresiones regulares de uso común.
Construir | Descripción | Ejemplo |
|---|---|---|
.
| Coincide con cualquier carácter individual (excepto salto de línea) | .at coincide con "gato", "sombrero" y también "murciélago" en la frase "archivos por lotes" |
\d
| Coincide con cualquier carácter de dígito (equivalente a [0-9] ) | \d coincide con "3" en "C3PO" y "2" en "file_2.txt" |
\D
| Coincide con cualquier carácter que no sea un dígito (equivalente a [^0-9] ) | \D coincide con "S" en "900S" y "Q" en "Q45" |
\s
| Coincide con cualquier carácter de espacio en blanco (equivalente a [ \t\n\x0B\f\r] ) | \sbook coincide con "libro" en "libro azul" pero no en "cuaderno" |
\S
| Coincide con cualquier carácter que no sea un espacio en blanco | \Sbook coincide con "libro" en "notebook" pero no en "libro azul" |
\w
| Coincide con cualquier carácter alfanumérico, incluido el carácter de subrayado (equivalente a [A-Za-z0-9_] ) | r\w* coincide con "rm" y "root" |
\W
| Coincide con cualquier carácter no alfanumérico (equivalente a [^A-Za-z0-9_] ) | \W coincide con "&" en "stmd &", "%" en "100%" y "$" en "$HOME" |
Clases de caracteres POSIX (US-ASCII)
POSIX tiene un conjunto de clases de caracteres que indican determinados rangos comunes. Son similares a las clases de corchetes y de caracteres predefinidos, excepto que tienen en cuenta la configuración regional (el idioma/sistema de codificación local).
Construir | Descripción |
|---|---|
\p{Lower}
| Un carácter alfabético en minúsculas, [a-z]
|
\p{Upper}
| Un carácter alfabético en mayúsculas, [A-Z]
|
\p{ASCII}
| Un carácter ASCII, [\x00-\x7F]
|
\p{Alpha}
| Un carácter alfabético, [a-zA-z]
|
\p{Digit}
| Un dígito numérico, [0-9]
|
\p{Alnum}
| Un carácter alfanumérico, [a-zA-z0-9]
|
\p{Punct}
| Un carácter de puntuación, uno de !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
|
\p{Graph}
| Un carácter visible, [\p{Alnum}\p{Punct}]
|
\p{Print}
| Un carácter imprimible, [\p{Graph}\x20]
|
\p{Blank}
| Un espacio o una ficha, [ t]
|
\p{Cntrl}
| Un carácter de control, [\x00-\x1F\x7F]
|
\p{XDigit}
| Un dígito hexadecimal, [0-9a-fA-F]
|
\p{Space}
| Un carácter de espacio en blanco, [ \t\n\x0B\f\r]
|