Clases de caracteres
Domina las clases de caracteres: crea conjuntos de caracteres permitidos, cubre rangos enteros, dale la vuelta a un conjunto con la negación y apóyate en las abreviaturas que conviene saberse de memoria.
Lee las reglas: Clases de caracteres en la Guía →Entrénalo: Castillos de caracteres →
Se basa en Fundamentos de la caza
Qué aprenderás
Pasos · 13
- 01Una posición, muchas opcionesInstrucciones
- 02Conjuntos de caracteresCaza
- 03Rangos: a-zCaza
- 04Rangos: 0-9Caza
- 05Conjuntos negadosCaza
- 06Abreviatura: \dCaza
- 07El trío de abreviaturasEjemplo
- 08Abreviaturas negadasCaza
- 09Los metacaracteres se vuelven literalesCaza
- 10Rangos combinadosCaza
- 11Rango de mayúsculasCaza
- 12Golf: el patrón más cortoCaza
- 13Posiciones bajo controlInstrucciones
Clases de caracteres, rangos y abreviaturas en regex
Una clase de caracteres permite que una posición del patrón acepte varias opciones. Escribe las opciones entre corchetes y la clase coincide con una cualquiera de ellas, pero solo con una. gr[ae]y acepta las dos grafías inglesas de “gris”, porque la posición que sigue a gr puede ser una a o una e. Con las clases dices “aquí una vocal” o “ahí algún dígito” sin escribir todas las palabras posibles.
Las clases ganan utilidad con los rangos y la negación. Un guion entre dos caracteres cubre todo lo que hay entre ellos, así que [1-5] es cualquier dígito del uno al cinco y [A-Za-z] es cualquier letra básica, sin tildes ni eñes. Un acento circunflejo justo después del corchete de apertura invierte el conjunto: [^,] es cualquier carácter excepto una coma. Lleve lo que lleve dentro, una clase siempre ocupa exactamente un carácter.
Algunos conjuntos aparecen tan a menudo que las regex les dan abreviaturas. \d es un dígito, \w es un carácter de palabra (letra, dígito o guion bajo) y \s es un espacio en blanco. Sus versiones en mayúscula, \D, \W y \S, significan lo contrario. Recurre a una clase siempre que una caza diga “cualquiera de estos” o “cualquiera menos estos” para una sola posición.
Ejemplos
Atrapa
- gray
- grey
- greyhound
Deja libre
- groan
- grid
La clase ofrece dos opciones para la tercera letra y nada más.
Atrapa
- 1star
- 5stars
- my3star
Deja libre
- 6star
- 0star
- star
Un rango cubre en una sola posición todos los dígitos del 1 al 5.
Atrapa
- zap
- lazy
- ozone
Deja libre
- buzz
- fizz
- quiz
Una clase negada sigue necesitando un carácter, así que una z justo al final no coincide, y tampoco una z seguida de otra z.
Atrapa
- 1 2
- room 4 5
Deja libre
- 12
- 1-2
Las abreviaturas se combinan como letras: un dígito, un espacio y otro dígito.
Errores frecuentes
- Leer una clase como si fuera una palabra.
[cat]coincide con una c, una a o una t, no con la palabracat, así que también atrapateayact. - Escribir rangos que cruzan de mayúsculas a minúsculas.
[a-Z]da error en JavaScript, y[A-z]deja pasar sin avisar símbolos como[,^y_; usa[A-Za-z]. - Esperar que
\wincluya letras con tilde. En JavaScript solo abarca letras ASCII, dígitos y guion bajo, así que la é decafécuenta como un carácter que no es de palabra.
Lee las reglas: Clases de caracteres en la Guía →Entrénalo: Castillos de caracteres →
Lee más: Clases de caracteres en regex: \d, \w, \s, [a-z] y sus trampas →