Cuantificadores
Los cuantificadores indican el número de caracteres o expresiones que deben coincidir.
Pruébalo
const ghostSpeak = "booh boooooooh";
const regexpSpooky = /bo{3,}h/;
console.log(ghostSpeak.match(regexpSpooky));
// Expected output: Array ["boooooooh"]
const modifiedQuote = "[He] ha[s] to go read this novel [Alice in Wonderland].";
const regexpModifications = /\[.*?\]/g;
console.log(modifiedQuote.match(regexpModifications));
// Expected output: Array ["[He]", "[s]", "[Alice in Wonderland]"]
const regexpTooGreedy = /\[.*\]/g;
console.log(modifiedQuote.match(regexpTooGreedy));
// Expected output: Array ["[He] ha[s] to go read this novel [Alice in Wonderland]"]
Tipos
La siguiente tabla también está duplicada en esta hoja de referencia
. No olvides editarla también, ¡gracias!
Nota:
A continuación, elemento se refiere no solo a caracteres individuales, sino que también incluye clases de caracteres
, escapes de propiedades Unicode
, grupos y rangos
.
Caracteres | Significado |
---|---|
x* |
Concuerda 0 o más veces con el elemento "x" anterior. Por ejemplo, |
x+ |
Encuentra 1 o más veces el elemento "x" anterior Equivalente a |
x? |
Halla 0 o 1 vez el elemento "x" anterior. Por ejemplo, Si se usa inmediatamente después de cualquiera de los cuantificadores |
x{n} |
Donde "n" es un número entero positivo, concuerda exactamente con "n" apariciones del elemento "x" anterior. Por ejemplo, |
x{n,} |
Donde "n" es un número entero positivo, concuerda con al menos "n" apariciones del elemento "x". Por ejemplo, |
x{n,m} |
Donde "n" es 0 o un número entero positivo, "m" es un número entero positivo y |
|
De manera predeterminada, los cuantificadores como
|
Ejemplos
Patrón repetido
var palabraTerminadaConAes = /\w+a+\b/;
var mensajeDelicado = "Esto es Espartaaaaaaa";
console.table(mensajeDelicado.match(palabraTerminadaConAes)); // [ "Espartaaaaaaa" ]
Conteo de caracteres
var palabraDeUnaLetra = /\b\w\b/g;
var palabraNoTanLarga = /\b\w{1,6}\b/g;
var palabraLaaaaarga = /\b\w{10,}\b/g;
var frase =
"¿Por qué me tengo que sentar a estudiar las tablas de multiplicar?";
console.table(frase.match(palabraDeUnaLetra)); // ["a"]
console.table(frase.match(palabraNoTanLarga)); // ["Por", "qu", "me", "tengo", "que", "sentar", "a", "las", "tablas", "de"]
console.table(frase.match(palabraLaaaaarga)); // ["multiplicar"]
Caracter opcional
var londinText = "He asked his neighbour a favour.";
var yanquiText = "He asked his neighbor a favor.";
var regexpEnding = /\w+ou?r/g;
// \w+ Una o varias letras
// o seguida de una "o",
// u? opcionalmente seguida de una "u"
// r seguida de una "r"
console.table(londinText.match(regexpEnding));
// ["neighbour", "favour"]
console.table(yanquiText.match(regexpEnding));
// ["neighbor", "favor"]
Codicioso versus no codicioso
var texto = "Debo estar muy cerca del centro de la tierra.";
var regexpCodiciosa = /[\w ]+/;
// [\w ] una letra del alfabeto latino o un espacio en blanco
// + una o varias veces
console.log(texto.match(regexpCodiciosa)[0]);
// "Debo estar muy cerca del centro de la tierra."
// casi todo el texto coincide (omite el caracter de punto)
var regexpNoCodiciosa = /[\w ]+?/; // Observa el signo de interrogación
console.log(texto.match(regexpNoCodiciosa));
// "D"
// La coincidencia es la más pequeña posible
Especificaciones
This feature does not appear to be defined in any specification.Compatibilidad del navegador
Para obtener información sobre la compatibilidad del navegador, consulta la tabla principal de compatibilidad de expresiones regulares
.