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
|