Aquí hay un resumen de los meta-caracteres y otras estructuras más empleados en las expresiones regulares. Si necesitas una explicación mas detallada y ver algunos ejemplos puedes consultar el libro Uso de expresiones regulares en JavaScript
Metacaracteres generales
Metacaracter | Significado |
---|---|
\d
|
Cualquier caracter que sea un número arábigo, es decir 0, 1 ,2 ,3 ,4 ,5 ,6 , 7 ,8 o 9 |
\D
|
Cualquier que no sea un número arábigo, es decir 0, 1, 2, 3, 4, 5, 6, 7, 8 o 9 |
\w
|
Cualquier caracter del alfabeto latino básico es decir letras minúsculas, letras mayúsculas y guión de subrayado |
\W
|
Cualquier caracter que no sea del alfabeto latino básico es decir letras minúsculas, letras mayúsculas, números arábigos y guión de subrayado |
\s
|
Encuentra coincidencia cuando hay un espacio u otros caracteres no imprimibles |
\^
|
Comprueba el principio de la cadena |
\$
|
Comprueba el final de la cadena |
\
|
Indica que el siguiente caracter, tiene que ser tratado de forma especial. Es útil para tratar meta-caracteres como caracteres especiales y para tratar caracteres normales como meta-caracteres |
\b
|
Comprueba límites de palabra. Un límite de palabra es la posición donde un caracter de palabra no es seguido o precedido por otro caracter de palabra. Los caracteres de palabra son: letras del alfabeto latino en mayúsculas o minúsculas, números arábigos o sea los caracteres del 0 al 9 y el caracter de subrayado |
\B
|
Comprueba límites de no palabra. Un límite de no palabra es la posición donde un caracter de palabra es seguido o precedido por otro caracter de palabra. Los caracteres de palabra son: letras del alfabeto latino en mayúsculas o minúsculas, números arábigos o sea los caracteres del 0 al 9 y el caracter de subrayado. Es decir busca que un caracter esté seguido o precedido por otro del mismo tipo, de palabra o de no palabra |
[abc] o [a-c]
|
Encuentra coincidencia si hay alguno de los caracteres que aparecen entre corchetes en la cadena. También se pueden especificar rangos de caracteres mediante un guión, así [abc] es lo mismo que [a-c] |
[^abc] o [^a-c]
|
Encuentra coincidencia si encuentra algún caracter distinto de los que aparecen entre corchetes en la cadena. También se pueden especificar rangos de caracteres mediante un guión, así [^abc] es lo mismo que [^a-c] |
\t
|
Hay coincidencia si encuentra un tabulador horizontal en la cadena. Hay que tener en cuenta que este caracter es un Non Printable Character y los editores normalmente no lo muestran como tal sino que lo interpretan como una orden, en este caso que el caracter siguiente se muestre más a la derecha |
\r \n \v \f
|
Estos al igual que el anterior son Non Printable Characteres y los editores normalmente no lo muestran como tal sino que lo interpretan como una orden. Cada uno tiene un significado distinto: \r carriage return (junto a \n salto de línea), \n linefeed (salto de línea), \v vertical tab y \f form-feed (salto de página) |
x|y
|
Disyunción: coincide si hay x o y. Cada componente separado por | se llama alternativa |
Metacaracteres cuantificadores
Metacaracter | Significado |
---|---|
x*
|
El item precedente 'x' se repite 0 o más veces |
x+
|
El item precedente 'x' se repite 1 o más veces |
x?
|
El item precedente 'x' se repite 0 o 1 vez |
x{n}
|
El item precedente 'x' se repite exactamente n veces |
Grupos
Grupo | Significado |
---|---|
(abc)
|
Busca la cadena abc |
(/w/w)
|
Busca 2 caracteres del alfabeto latino seguidos |
(?<g>abc)
|
El grupo se llama g. Luego se puede usar con \k<g> |
(([0-9]){2}-){3}
|
Los grupos se pueden anidar. En este caso el primer grupo es un numero que se tiene que repetir 2 veces seguido de un guión es el segundo grupo que anida al primero. Luego todo eso se repite 3 veces |
Flags
Flag | Significado |
---|---|
i
|
Encuentra coincidencia sin distinguir mayúsculas de minúsculas |
g
|
Encuentra todas las coincidencias del patrón en la cadena |
m
|
Significa busqueda multilínea. Solo es aplicable a los metacarateres ^ y $ de principio y final de línea |
s
|
Es aplicable al metacaracter .. Cuando se usa el flag s el . encuentra coincidencia con salto de línea \n |
u
|
JavaScript utiliza la codificación Unicode, esto determina como se almacenan internamente los caracteres en memoria. Existen caracteres que se guardan de 2 bytes (16 bits de 0s y 1s) y otros que se guardan en 4 bytes. Hay que tener en cuenta que Unicode tiene combinaciones de 0s y 1s para representar los caracteres de cualquier idioma, una a sería 01000001 en binario o 41 en hexadecimal. Para construir patrones para Unicode se usa el metacaracter \p junto con otros caracteres que se ponen entre {}, por ejemplo {Sc} significa symbol y currency (símbolo y moneda) |
y
|
Busca el patrón en una posición determinada dentro de la cadena. Para establecer la posición en la que buscar se usar la propiedad lastIndex de RegExp |
Objetos para manejar patrones
Objeto.Método | Uso |
---|---|
RegExp.text()
|
El método test() ejecuta una busqueda del patrón dentro de una cadena de caracteres (string), devolviendo true si lo encuentra o false sino lo encuentra
|
RegExp.exec()
|
El método exec() realiza una búsqueda para encontrar el patrón dentro de una cadena de caracteres (string) y devuelve un array con los resultados. Sino hay coincidencias devuelve null
|
String.match()
|
Con la bandera g de global, este método devuelve un array con las coincidencias encontradas |
String.matchAll()
|
Debe llevar la bandera g y devuelve un iterador que contiene las coincidencias del patrón encontradas en la cadena |
String.split()
|
Separa la cadena por el patrón especificado y crea un array con las subcadenas obtenidas |
String.search()
|
Busca la primera coincidencia del patrón y devuelve la posición dentro de la cadena en la que lo encuentra |
String.replace()
|
Reemplaza una cadena o las coincidencias del patrón con la cadena especificada. El método replace tiene dos argumentos, uno para especificar la cadena o patrón a reemplazar y el segundo para especificar conqué hay que reemplazarlo |