Hoja de referencia de sintaxis de expresiones regulares
Esta página proporciona una hoja de referencia general de todas las capacidades de la sintaxis de RegExp
agregando el contenido de los artículos en la guía RegExp
. Si necesitas más información sobre un tema específico, sigue el enlace del título correspondiente para acceder al artículo completo o dirígete a la guía.
Clases de caracteres
Si deseas contribuir a este documento, edita también el artículo original
Caracteres | Significado |
---|---|
. |
Tiene uno de los siguientes significados:
Ten en cuenta que el indicador multilínea ES2018 agregó el indicador |
\d |
Busca cualquier dígito (número arábigo). Equivalente a |
\D |
Busca cualquier caracter que no sea un dígito (número arábigo). Equivalente a |
\w |
Busca cualquier caracter alfanumérico del alfabeto latino básico, incluido el caracter de subrayado. Equivalente a |
\W |
Busca cualquier caracter que no sea un caracter de palabra del alfabeto latino básico. Equivalente a |
\s |
Busca un solo caracter de espacio en blanco, incluido el espacio, tabulación, avance de página, avance de línea y otros espacios Unicode. Equivalente a |
\S |
Busca un solo caracter que no sea un espacio en blanco. Equivalente a |
\t |
Coincide con una tabulación horizontal. |
\r |
Coincide con un retorno de carro. |
\n |
Coincide con un salto de línea. |
\v |
Coincide con una tabulación vertical. |
\f |
Coincide con un caracter de avance de página. |
[\b] |
Coincide con un caracter de retroceso. Si estás buscando el caracter de límite de palabra (\b ), consulta Límites. |
\0 |
Coincide con un caracter NUL . No sigue a este con otro dígito. |
\cX |
Coincide con un caracter de control usando notación de acento circunflejo, donde "X" es una letra de la A a la Z (correspondiente a los puntos de código |
\xhh |
Busca el caracter con el código hh (dos dígitos hexadecimales). |
\uhhhh |
Busca una unidad de código UTF-16 con el valor hhhh (cuatro dígitos hexadecimales). |
\u{hhhh} o \u{hhhhh} |
(Solo cuando se establece el indicador u ). Busca el caracter con el valor Unicode U+hhhh o U+hhhhh (dígitos hexadecimales). |
\ |
Indica que el siguiente caracter se debe tratar de manera especial o "escaparse". Se comporta de dos formas.
Ten en cuenta que algunos caracteres como Para reconocer este caracter literalmente, escápalo consigo mismo. En otras palabras, para buscar |
Aserciones
Si deseas contribuir a este documento, edita también el artículo original
Aserciones de tipo límite
Caracteres | Significado |
---|---|
^ |
Coincide con el comienzo de la entrada. Si el indicador multilínea se establece en Este caracter tiene un significado diferente cuando aparece al comienzo de un grupo. |
$ |
Coincide con el final de la entrada. Si el indicador multilínea se establece en |
\b |
Marca el límite de una palabra. Esta es la posición en la que un caracter de palabra no va seguido o precedido por otro caracter de palabra, por ejemplo, entre una letra y un espacio. Ten en cuenta que el límite de una palabra encontrada no se incluye en el resultado. En otras palabras, la longitud de un límite de palabra encontrada es cero. Ejemplos:
Para encontrar un caracter de retroceso ( |
\B |
Coincide con un límite sin palabra. Esta es una posición en la que el caracter anterior y siguiente son del mismo tipo: ambos deben ser palabras o ambos deben ser no palabras, por ejemplo, entre dos letras o entre dos espacios. El principio y el final de una cadena se consideran no palabras. Igual que el límite de palabras encontradas, el límite sin palabras reconocidas tampoco se incluye en el resultado. Por ejemplo, |
Otras aserciones
Nota:
El caracter ?
también se puede utilizar como cuantificador.
Caracteres | Significado |
---|---|
x(?=y) |
Aserción anticipada: Coincide con "x" solo si "x" va seguida de "y". Por ejemplo, / |
x(?!y) |
Aserción de búsqueda anticipada negativa: reconoce la "x" solo si la "x" no va seguida de "y". Por ejemplo, |
(?<=y)x |
Aserción de búsqueda inversa: encontrará "x" solo si "x" está precedida por "y". Por ejemplo, |
(?<!y)x |
Aserción de búsqueda inversa negativa: Reconoce la "x" solo si "x" no está precedida por "y". Por ejemplo, |
Grupos y rangos
Si deseas contribuir a este documento, edita también el artículo original
Caracteres | Significado |
---|---|
x|y |
Coincide con "x" o "y". Por ejemplo, /verde|roja/ reconoce el "verde" en "manzana verde" y "roja" en "manzana roja". |
[xyz] [a-c] |
Un juego de caracteres. Coincide con cualquiera de los caracteres incluidos. Puedes especificar un rango de caracteres mediante el uso de un guión, pero si el guión aparece como el primero o último caracter entre corchetes, se toma como un guión literal para incluirse en el juego de caracteres como un caracter normal. También es posible incluir una clase de caracteres en un juego de caracteres.Por ejemplo, [abcd] es lo mismo que [a-d] . Coincide con la "b" en "brisket" y la "c" en "chop".Por ejemplo, [abcd-] y [-abcd] reconoce la "b" en "brisket", la "c" en "chop" y el "-" (guión) en "non-profit".Por ejemplo, [\w-] es lo mismo que [A-Za-z0-9_-] . Ambos reconocen la "b" en "brisket", la "c" en "chop" y la "n" en "non-profit". |
[^xyz] [^a-c] |
Un juego de caracteres negado o complementado. Es decir, hallan cualquier cosa que no esté encerrada entre corchetes. Puedes especificar un rango de caracteres mediante el uso de un guión, pero si el guión aparece como el primero o último caracter entre corchetes, se toma como un guión literal para incluirse en el juego de caracteres como un caracter normal. Por ejemplo, [^abc] es lo mismo que [^a-c] . Inicialmente halla la "o" en "bacon" y la "h" en "chuleta".El caracter ^ además puede indicar el comienzo de la entrada. |
(x) |
Grupo de captura: Encuentra la x y la recuerda. Por ejemplo, /(foo)/ encuentra y recuerda "foo" en "foo bar".Una expresión regular puede tener varios grupos de captura. En los resultados, coincide con los grupos capturados normalmente en un arreglo cuyos miembros están en el mismo orden que los paréntesis de la izquierda en el grupo capturado. Este suele ser solo el orden de los propios grupos capturados. Esto se vuelve importante cuando los grupos capturados están anidados. Se accede a las coincidencias utilizando el índice de los elementos del resultado ([1], ..., [n] ) o desde las propiedades predefinidas del objeto RegExp ($1, ..., $9 ).Los grupos de captura tienen una penalización de rendimiento. Si no necesitas que se recupere la subcadena coincidente, prefiere los paréntesis que no capturen (ve más abajo).String.match() no devolverá grupos si el indicador /.../g está configurado. Sin embargo, aún puedes usar String.matchAll() para obtener todas los encontrados. |
\n |
Donde "n" es un número entero positivo. Una referencia posterior a la última subcadena que coincide con el paréntesis n en la expresión regular (contando los paréntesis izquierdos). Por ejemplo, /apple(,)\sorange\1/ coincide con "apple, orange" en "apple, orange, cherry, peach". |
\k<Name> | Una referencia inversa a la última subcadena encontrada con el grupo de captura Nombrado especificado por <Name> .Por ejemplo, /(?<title>\w+), yes \k<title>/ concuerda con "Sir, yes Sir" en "Do you copy? Sir, yes Sir!". \k aquí se usa literalmente para indicar el comienzo de una referencia a un grupo de captura nombrado. |
(?<Name>x) |
Grupo de captura nombrado: reconoce la "x" y la almacena en la propiedad group del resultado devuelto bajo el nombre especificado por <Name> . Los corchetes angulares (< y > ) son obligatorios para el nombre del grupo.Por ejemplo, para extraer el código de área de Estados Unidos de un número de teléfono, podríamos usar /\((?<area>\d\d\d)\)/ . El número resultante debería aparecer en matches.groups.area . |
(?:x) |
Grupo sin captura: reconoce la "x" pero no recuerda el resultado. La subcadena encontrada no se puede recuperar de los elementos del arreglo resultante ([1], ..., [n] ) o de las propiedades predefinidas del objeto RegExp ($1, ..., $9 ). |
Cuantificadores
Si deseas contribuir a este documento, edita también el artículo original
Nota: A continuación, elemento se refiere no solo a caracteres singulares, sino que también incluye clases de caracteres, escapes de propiedad Unicode, grupos y rangos.
Caracteres | Significado |
---|---|
x* |
Concuerda 0 o más veces con el elemento "x" anterior. Por ejemplo, |
x+ |
Encuentra 1 o más veces el elemento "x" anterior Equivalente a |
x? |
Halla 0 o 1 vez el elemento "x" anterior. Por ejemplo, Si se usa inmediatamente después de cualquiera de los cuantificadores |
x{n} |
Donde "n" es un número entero positivo, concuerda exactamente con "n" apariciones del elemento "x" anterior. Por ejemplo, |
x{n,} |
Donde "n" es un número entero positivo, concuerda con al menos "n" apariciones del elemento "x". Por ejemplo, |
x{n,m} |
Donde "n" es 0 o un número entero positivo, "m" es un número entero positivo y |
|
De manera predeterminada, los cuantificadores como
|
Escapa la propiedad Unicode
Si deseas contribuir a este documento, edita también el artículo original
// Valores no binarios
\p{UnicodePropertyValue}
\p{UnicodePropertyName=UnicodePropertyValue}
// Valores binarios y no binarios
\p{UnicodeBinaryPropertyName}
// Negación: \P is negado \p
\P{UnicodePropertyValue}
\P{UnicodeBinaryPropertyName}
- UnicodeBinaryPropertyName
-
El nombre de una propiedad binaria. Por ejemplo:
ASCII
,Alpha
,Math
,Diacrítica
,Emoji
,Hex_Digit
,Math
,Espacio_blanco
, etc. Consulta Unicode Data PropList.txt para obtener más información. - UnicodePropertyName
-
El nombre de una propiedad no binaria:
- General_Category (
gc
) - Script (
sc
) - Script_Extensions (
scx
)
- General_Category (
Consulta también PropertyValueAliases.txt
- UnicodePropertyValue
-
Uno de los fragmentos enumerados en la sección Valores, más adelante. Muchos valores tienen alias o abreviaturas (por ejemplo, el valor
Decimal_Number
para la propiedadGeneral_Category
se puede escribir cómoNd
,digit
, oDecimal_number
). Para la mayoría de los valores, la parteUnicodePropertyName
y el signo igual se pueden omitir. Si se especifica unUnicodePropertyName
, el valor debe corresponder al tipo de propiedad proporcionado.
Nota: Puesto que hay muchas propiedades y valores disponibles, no las describiremos exhaustivamente aquí, sino que proporcionaremos varios ejemplos.