Resumo : neste tutorial, você aprenderá como usar quantificadores para corresponder a um número de instâncias de um caractere, grupo ou classe de caracteres em uma string.
Os quantificadores correspondem a um número de instâncias de um caractere, grupo ou classe de caracteres em uma string.
Quantidade
Contagem exata{n}
Um número entre chaves {n}
é o quantificador mais simples. Quando você o acrescenta a um caractere ou classe de caracteres, ele especifica quantos caracteres ou classes de caracteres você deseja corresponder.
Por exemplo, a expressão regular /\d{4}/
corresponde a um número de quatro dígitos. É o mesmo que /\d\d\d\d/
:
let str = 'ECMAScript 2020';
let re = /\d{4}/;
let result = str.match(re);
console.log(result);
Linguagem de código: JavaScript ( javascript )
Saída:
["2020"]
Linguagem de código: JavaScript ( javascript )
O alcance{n,m}
O intervalo corresponde a um caractere ou classe de caractere de tempos n
em m
tempos.
Por exemplo, para encontrar números com dois, três ou quatro dígitos, você usa a expressão regular /\d{2,4}/g
:
let str = 'The official name of ES11 is ES2020';
let re = /\d{2,4}/g;
let result = str.match(re);
console.log(result);
Linguagem de código: JavaScript ( javascript )
Saída:
["11", "2020"]
Linguagem de código: JavaScript ( javascript )
Como o limite superior é opcional, {n,}
procura uma sequência de n
ou mais vezes. Por exemplo, a expressão regular /\d{2,}/
corresponderá a qualquer número que tenha dois ou mais dígitos.
let str = 'The official name of ES6 is ES2015';
let re = /\d{2,}/g;
let result = str.match(re);
console.log(result);
Linguagem de código: JavaScript ( javascript )
Saída:
["2015"]
Linguagem de código: JavaScript ( javascript )
O exemplo a seguir usa a expressão regular /\d{1,}/g
para corresponder a qualquer número que tenha um ou mais dígitos em um número de telefone:
let numbers = '+1-(408)-555-0105'.match(/\d{1,}/g);
console.log(numbers);
Linguagem de código: JavaScript ( javascript )
Saída:
["1", "408", "555", "0105"]
Linguagem de código: JavaScript ( javascript )
Taquigrafias
+
O quantificador {1,}
significa um ou mais que possuem a abreviatura como +
. Por exemplo, as \d+
pesquisas por números:
let phone = "+1-(408)-555-0105";
let result = phone.match(/\d+/g);
console.log(result);
Linguagem de código: JavaScript ( javascript )
Saída:
["1", "408", "555", "0105"]
Linguagem de código: JavaScript ( javascript )
?
O quantificador ?
significa zero ou um. É o mesmo que {0,1}
. Por exemplo, /colou?r/
corresponderá a ambos color
e colour
:
let str = 'Is this color or colour?';
let result = str.match(/colou?r/g);
console.log(result);
Linguagem de código: JavaScript ( javascript )
Saída:
["color", "colour"]
Linguagem de código: JavaScript ( javascript )
*
O quantificador *
significa zero ou mais. É o mesmo que {0,}
. O exemplo a seguir mostra como usar o quantificador *
para corresponder à string Java
seguida por qualquer caractere de palavra:
let str = 'JavaScript is not Java';
let re = /Java\w*/g
let results = str.match(re);
console.log(results);
Linguagem de código: JavaScript ( javascript )
Saída:
["JavaScript", "Java"]
Linguagem de código: JavaScript ( javascript )
Freqüentemente usamos quantificadores para formar expressões regulares complexas. A seguir mostramos alguns exemplos de expressões regulares que incluem quantificadores:
- Números inteiros:
/^\d+$/
- Números decimais:
/^\d*.\d+$/
- Números inteiros e números decimais:
/^\d*(.\d+)?$/
- Números inteiros negativos e positivos e números decimais:
/^-?\d*(.\d+)?$/
Resumo
A tabela a seguir lista os quantificadores:
Quantificador | Descrição |
---|---|
* |
Combine zero ou mais vezes. |
+ |
Combine uma ou mais vezes. |
? |
Combine zero ou uma vez. |
{ n } |
Combine exatamente n vezes. |
{ n ,} |
Combine pelo menos n vezes. |
{ n- , m } |
Combine de n a m vezes. |