Expressão Regular: Conjuntos e Intervalos

Resumo : neste tutorial, você aprenderá sobre conjuntos e intervalos em expressões regulares.

Conjuntos

Os colchetes procuram qualquer caractere em um conjunto. Por exemplo, [aeiou]corresponde a qualquer um dos cinco caracteres : 'a', 'e', e . O é chamado de conjunto.'i''o''u'[...]

Por exemplo, a expressão regular /[cbr]ats/gcorresponde a cats, batse rats:

let str = 'How cats, rats, and bats became Halloween animals';
let re = /[cbr]ats/g;
let results = str.match(re);

console.log(results);Linguagem de código:  JavaScript  ( javascript )

Saída:

["cats", "rats", "bats"]Linguagem de código:  JavaScript  ( javascript )

Gamas

Os colchetes podem conter intervalos de caracteres. Por exemplo, [a-z]é um intervalo de caracteres de aaté z. E [0-9]é um dígito de 0 a 9.

O [a-zA-Z0-9_]é o mesmo que \w. O [0-9]é o mesmo que \d.

Excluindo intervalos

Para negar um intervalo, você usa o intervalo de exclusão como: [^...].

Por exemplo, [^0-9]corresponde a qualquer caractere, exceto um dígito. É o mesmo que \D.

Ou corresponde a qualquer caractere , [^aeiou]exceto 'a', 'e', e .'i''o''u'

Fuja de caracteres especiais

Normalmente, você usa uma barra invertida para escapar de um caractere especial, por exemplo, \.. No entanto, entre colchetes, você não precisa escapar da maioria dos caracteres especiais, exceto que eles têm um significado para os colchetes.

Por exemplo, se o sinal de intercalação ( ^) estiver no início de uma string, você precisará escapar dele:

[\^#$]Linguagem de código:  JavaScript  ( javascript )

Se o cursor não estiver no início de uma string ( ^), você não precisa escapar:

[#^$]Linguagem de código:  JavaScript  ( javascript )

A bandeirau

Se um conjunto tiver um par substituto, você precisará adicionar o sinalizador uà expressão regular para que funcione corretamente:

let result = 'It is 🍎'.match(/[🍎🍅🍓]/);

console.log(result);Linguagem de código:  JavaScript  ( javascript )

Saída:

["�"]Linguagem de código:  JavaScript  ( javascript )

Neste exemplo, [🍎🍅🍓] tem seis caracteres, não três:

let str = '🍎🍅🍓';

for(let i=0; i<str.length; i++) {
    console.log(str.charCodeAt(i));
}Linguagem de código:  JavaScript  ( javascript )

Saída:

55356
57166
55356
57157
55356
57171Linguagem de código:  JavaScript  ( javascript )

Se você adicionar o sinalizador u, o comportamento estará correto:

let result = 'It is 🍎'.match(/[🍎🍅🍓]/u);

console.log(result);Linguagem de código:  JavaScript  ( javascript )

Saída:

["🍎"]Linguagem de código:  JavaScript  ( javascript )

Resumo

  • Use [...]para construir um conjunto para corresponder a qualquer caractere nele.
  • Use o -interior de um conjunto para construir um intervalo que corresponda a qualquer caractere do intervalo.
  • Use o ^para negar um intervalo.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *