Chaves em expressões regulares JavaScript

Os operadores '+', '*', '?' são úteis, no entanto, com eles não é possível especificar um número exato de repetições. Neste caso, o operador {} virá ao seu resgate.

Ele funciona da seguinte forma: {5} - cinco repetições, {2,5} – repete de duas a cinco vezes (ambos inclusivos), {2,} - repete duas vezes ou mais. Preste atenção ao fato de que não há esta variante - {,2} - . Veja os exemplos:

Exemplo

Neste exemplo, o padrão de busca é o seguinte: letra 'x', letra 'a' uma ou duas vezes, letra 'x':

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,2}x/g, '!');

Como resultado, o seguinte será armazenado na variável:

javascript'xx ! ! xaaax'

Exemplo

Neste exemplo, o padrão de busca é o seguinte: letra 'x', letra 'a' duas vezes ou mais, letra 'x':

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{2,}x/g, '!');

Como resultado, o seguinte será armazenado na variável:

javascript'xx xax ! !'

Exemplo

Neste exemplo, o padrão de busca é o seguinte: letra 'x', letra 'a' três vezes, letra 'x':

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{3}x/g, '!');

Como resultado, o seguinte será armazenado na variável:

javascript'xx xax xaax !'

Exemplo

Neste exemplo, o padrão de busca é o seguinte: letra 'a' dez vezes:

javascriptlet str = 'aaa aaaaaaaaaa aaa';
let res = str.replace(/a{10}/g, '!');

Como resultado, o seguinte será armazenado na variável:

javascript'aaa ! aaa'

Exemplo

Neste exemplo, o autor do código queria o seguinte padrão: letra 'x', letra 'a' três vezes ou menos, letra 'x', mas, infelizmente, isto - {,3} - não funciona. É necessário especificar explicitamente:

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{1,3}x/g, '!');

Como resultado, o seguinte será armazenado na variável:

javascript'xx ! ! !'

Exemplo

Zero também é permitido:

javascriptlet str = 'xx xax xaax xaaax';
let res = str.replace(/xa{0,3}x/g, '!');

Como resultado, o seguinte será armazenado na variável:

javascript'! ! ! !'

Problemas práticos

Задание 1

Dada a string:

javascriptlet str = 'aa aba abba abbba abbbba abbbbba';

Escreva uma expressão regular que encontre as strings 'abba', 'abbba', 'abbbba' e apenas elas.

Задание 2

Dada a string:

javascriptlet str = 'aa aba abba abbba abbbba abbbbba';

Escreva uma expressão regular que encontre strings do tipo 'aba', nas quais 'b' ocorre menos de 3 vezes (inclusive).

Задание 3

Dada a string:

javascriptlet str = 'aa aba abba abbba abbbba abbbbba';

Escreva uma expressão regular que encontre strings do tipo 'aba', nas quais 'b' ocorre mais de 4 vezes (inclusive).