Introducción a las Expresiones Regulares en JavaScript
Las expresiones regulares son comandos para búsqueda y reemplazo complejos (o simplemente búsqueda). Permiten hacer cosas muy interesantes, pero, desafortunadamente, son bastante difíciles de aprender.
Existen varios métodos de JavaScript para
trabajar con expresiones regulares. Comenzaremos
a familiarizarnos con ellos usando el ejemplo de replace
- ya conoces este método: toma como primer
parámetro qué cambiar, y como segundo
- por qué cambiar. Y el método mismo se aplica
a la cadena en la que se realiza el reemplazo:
'bab'.replace('a', '!'); // devolverá 'b!b'
Como primer parámetro de este método se puede pasar
no solo una cadena, sino una expresión regular.
Una expresión regular representa un conjunto
de comandos, ubicados dentro de barras /. Estas
barras se llaman delimitadores de las expresiones
regulares.
Las expresiones regulares en sí consisten en dos tipos de caracteres: aquellos que se representan a sí mismos y aquellos que son caracteres de comando, llamados caracteres especiales.
Las letras y los números se representan a sí mismos. En el siguiente
ejemplo, usaremos una expresión regular
para reemplazar la letra 'a' por !:
'bab'.replace(/a/, '!'); // devolverá 'b!b'
Pero el punto es un carácter especial
y representa cualquier carácter. En el siguiente
ejemplo, encontraremos una cadena según este patrón:
letra 'x', luego cualquier carácter, luego
nuevamente la letra 'x':
'xax eee'.replace(/x.x/, '!'); // devolverá '! eee'
Después de los delimitadores se pueden escribir modificadores
- comandos que cambian las propiedades generales
de la expresión regular. Por ejemplo, el modificador
g activa el modo de búsqueda y reemplazo global
- sin él, la expresión regular busca solo
la primera coincidencia, y con él - todas las coincidencias.
En el siguiente ejemplo no se especifica el modificador
g y la expresión regular encontrará solo la primera
coincidencia:
'aab'.replace(/a/, '!'); // devolverá '!ab'
Y ahora la expresión regular encontrará todas las coincidencias:
'aab'.replace(/a/g, '!'); // devolverá '!!b'
Se da la cadena:
let str = 'ahb acb aeb aeeb adcb axeb';
Escriba una expresión regular que encuentre las cadenas
'ahb', 'acb', 'aeb'
según el patrón: letra 'a', cualquier carácter,
letra 'b'.
Se da la cadena:
let str = 'aba aca aea abba adca abea';
Escriba una expresión regular que encuentre las cadenas
'abba', 'adca', 'abea'
según el patrón: letra 'a', 2
caracteres cualesquiera, letra 'a'.
Se da la cadena:
let str = 'aba aca aea abba adca abea';
Escriba una expresión regular que encuentre las cadenas
'abba' y 'abea', sin capturar
'adca'.