Llaves en expresiones regulares de JavaScript

Los operadores '+', '*', '?' son útiles, sin embargo, con ellos no se puede especificar un número concreto de repeticiones. En este caso viene en tu ayuda el operador {}.

Funciona de la siguiente manera: {5} - cinco repeticiones, {2,5} – se repite de dos a cinco (ambos inclusive), {2,} - se repite dos o más veces. Presta atención a que no existe esta variante - {,2}. Mira los ejemplos:

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: letra 'x', letra 'a' una o dos veces, letra 'x':

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

Como resultado en la variable se escribirá lo siguiente:

javascript'xx ! ! xaaax'

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: letra 'x', letra 'a' dos veces o más, letra 'x':

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

Como resultado en la variable se escribirá lo siguiente:

javascript'xx xax ! !'

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: letra 'x', letra 'a' tres veces, letra 'x':

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

Como resultado en la variable se escribirá lo siguiente:

javascript'xx xax xaax !'

Ejemplo

En este ejemplo el patrón de búsqueda se ve así: letra 'a' diez veces:

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

Como resultado en la variable se escribirá lo siguiente:

javascript'aaa ! aaa'

Ejemplo

En este ejemplo el autor del código quería este patrón: letra 'x', letra 'a' tres veces o menos, letra 'x', pero, desgraciadamente, esto - {,3} - no funciona. Hay que especificarlo explícitamente:

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

Como resultado en la variable se escribirá lo siguiente:

javascript'xx ! ! !'

Ejemplo

El cero también está permitido:

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

Como resultado en la variable se escribirá lo siguiente:

javascript'! ! ! !'

Problemas prácticos

Задание 1

Dada la cadena:

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

Escribe una expresión regular que encuentre las cadenas 'abba', 'abbba', 'abbbba' y solo ellas.

Задание 2

Dada la cadena:

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

Escribe una expresión regular que encuentre las cadenas del tipo 'aba', en las que 'b' aparece menos de 3 veces (inclusive).

Задание 3

Dada la cadena:

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

Escribe una expresión regular que encuentre las cadenas del tipo 'aba', en las que 'b' aparece más de 4 veces (inclusive).