Operadores de repetición de caracteres en expresiones regulares
Hay situaciones en las que queremos indicar
que un carácter se repite un número determinado
de veces. Si conocemos el número exacto de repeticiones,
simplemente podemos escribirlo varias veces
- /aaaa/. Pero, ¿qué hacemos si queremos
decir algo como: repetir una o más veces?
Para esto existen operadores (cuantificadores)
de repetición: más + (una o más veces),
asterisco * (cero o más veces) y
interrogante ? (cero o una vez). Estos
operadores actúan sobre el carácter que
está delante de ellos.
Veamos el trabajo de estos operadores con ejemplos.
Ejemplo
Encontremos todas las subcadenas según el patrón letra
'x', letra 'a' una o más
veces, letra 'x':
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
Como resultado, se escribirá lo siguiente en la variable:
'xx ! ! ! xbx'
Ejemplo
Encontremos todas las subcadenas según el patrón letra
'x', letra 'a' cero o más
veces, letra 'x':
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
Como resultado, se escribirá lo siguiente en la variable:
'! ! ! ! xbx'
Ejemplo
Encontremos todas las subcadenas según el patrón letra
'x', letra 'a' cero o una
vez, letra 'x':
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
Como resultado, se escribirá lo siguiente en la variable:
'! ! xaax xbx'
Problemas prácticos
Dada la cadena:
let str = 'aa aba abba abbba abca abea';
Escriba una expresión regular que encuentre las cadenas
'aba', 'abba', 'abbba'
según el patrón: letra 'a', letra 'b'
cualquier número de veces, letra 'a'.
Dada la cadena:
let str = 'aa aba abba abbba abca abea';
Escriba una expresión regular que encuentre las cadenas
'aa', 'aba', 'abba',
'abbba' según el patrón: letra 'a',
letra 'b' cualquier número de veces (incluyendo
ninguna vez), letra 'a'.
Dada la cadena:
let str = 'aa aba abba abbba abca abea';
Escriba una expresión regular que encuentre las cadenas
'aa', 'aba' según el patrón: letra
'a', letra 'b' una vez o
ninguna, letra 'a'.
Dada la cadena:
let str = 'aa aba abba abbba abca abea';
Escriba una expresión regular que encuentre las cadenas
'aa', 'aba', 'abba',
'abbba', sin capturar 'abca'
y 'abea'.