Construyendo tu propia expresión regular

Las expresiones regulares se construyen colocando los diversos componentes de la expresión entre un par de delimitadores. En JavaScript, los delimitadores son un par de caracteres de barra diagonal (/), como se muestra en el siguiente ejemplo.

 /expression/


Comienzo ^

Fin $

^ \ d {2} $

Los siguientes son algunos metacaracteres comunes de expresiones regulares y ejemplos de lo que coincidirían o no.

Metacarácter
Descripción
Ejemplos
\re
Número entero 0 - 9
\ d \ d \ d = 327

\ d \ d = 81

\ d = 4

-----------------------------------------

\ d \ d \ d ≠ 24631

\ d \ d \ d no devolverá 24631 porque 24631 contiene 5 dígitos. \ d \ d \ d solo coincidirá con una cadena de 3 dígitos.
\ w
Caracteres alfanuméricos
\ w \ w \ w = "perro"

\ w \ w \ w \ w = "mula"

\ w \ w = "a"

-----------------------------------------

\ w \ w \ w = 467

\ w \ w \ w \ w = 4673

-----------------------------------------

\ w \ w \ w ≠ "barco"

\ w \ w \ w no devolverá "barco" porque "barco" contiene 4 caracteres.

-----------------------------------------

\ w ≠!

\ w no devolverá el signo de exclamación "!" porque es un carácter no alfanumérico.
\ W
Simbolos
\ W =%

\ W = #

\ W \ W \ W = @ #%

-----------------------------------------

\ W \ W \ W \ W ≠ perro8

\ W \ W \ W \ W no devolverá "dog8" porque d, o, gy 8 son caracteres alfanuméricos.
[Arizona]
[0-9]
Conjunto de caracteres, al menos uno de los cuales debe coincidir, pero no más de uno a menos que se especifique lo contrario. El orden de los personajes no importa.
pand [ora] = panda

pand [ora] = pando

-----------------------------------------

pand [ora] ≠ pandora

pand [ora] no devuelve "pandora" porque está implícito en pand [ora] que sólo se puede devolver 1 carácter en [ora].

(Los cuantificadores que permitirán que pand [ora] coincida con "pandora" se discutirán a continuación).
(a B C)
-123
Grupo de caracteres, coincide con los caracteres abc o 123 en ese orden exacto.
pand (ora) = pandora

pand (123) = pand123

-----------------------------------------

pand (remo) ≠ pandora

pand (remo) no coincide con "pandora" porque busca la frase exacta "pandoar".
|
Alternancia: permite coincidencias alternativas. | funciona como el OR booleano.
pand (abc | 123) = "pandora" O "pand123"
{norte}
Coincide cuando el carácter anterior, o grupo de caracteres, aparece n veces exactamente.
\ d {3} = 836

\ d {3} = 139

\ d {3} = 532

-----------------------------------------

pand [ora] {2} = "pandar"

pand [ora] {2} = "pandoo"

pand (ora) {2} = "pandoraora"

-----------------------------------------

pand [ora] {2} ≠ pandora

pand [ora] {2} no coincidirá con "pandora" porque el cuantificador {2} solo permite 2 letras del conjunto de caracteres [ora].
{Nuevo Méjico}
Coincide cuando el carácter anterior, o grupo de caracteres, aparece al menos n veces y como máximo m veces.
\ d {2,5} = 97430

\ d {2,5} = 9743

\ d {2,5} = 97

-----------------------------------------

\ d {2,5} ≠ 9

9 no coincide porque es de 1 dígito, por lo tanto, está fuera del rango de caracteres.
?
El signo de interrogación coincide cuando el carácter que precede al? el signo ocurre 0 o 1 vez solamente, lo que hace que la coincidencia de caracteres sea opcional.
colou? r = "color" (u se encuentra 1 vez)

colou? r = "color" (u se encuentra 0 veces)
*
El asterisco coincide cuando el carácter que precede a * coincide 0 o más veces.

NOTA: * en RegEx es diferente de * en dtSearch. La expresión regular * pide encontrar dónde se encuentra el carácter (o agrupación) que precede * CERO o más veces. dtSearch * pide encontrar dónde se encuentra la cadena de caracteres que precede * o sigue * 1 o más veces.
tre * = "árbol" (e se encuentra 2 veces)

tre * = "tre" (e se encuentra 1 vez)

tre * = "tr" (e se encuentra 0 veces)

-----------------------------------------

tre * ≠ "árboles"

tre * no coincidirá con el término "árboles porque, aunque" e "se encuentra 2 veces, va seguida de" s ", que no se tiene en cuenta en la expresión regular".
+
El signo más coincide cuando el carácter que precede a + coincide 1 o más veces. El signo + hace que la coincidencia de caracteres sea obligatoria.
tre + = "árbol (e se encuentra 2 veces)

tre + = "tre" (e se encuentra 1 vez)

-----------------------------------------

tre + ≠ "tr" (e se encuentra 0 veces)

tre + no coincidirá con "tr" porque e se encuentra cero veces en "tr".
. (período)
El punto coincide con cualquier carácter o símbolo alfanumérico.
tonelada. = "tono"

tonelada. = "ton #"

tonelada. = "ton4"

-----------------------------------------

tonelada. ≠ "tonos"

tonelada. no coincidirá con el término "tonos" porque. por sí solo coincidirá con un solo carácter, aquí, en la cuarta posición del término. En "tonos", la s es el quinto carácter y no se tiene en cuenta en la expresión regular.
. *
Combina los metacaracteres. y *, en ese orden. * para coincidir con cualquier carácter 0 veces o más.

NOTA:. * En RegEx es equivalente al operador dtSearch wildcard *.
tr. * = "tr"

tr. * = "tre"

tr. * = "árbol"

tr. * = "árboles"

tr. * = "comedero"

tr. * = "cinta de correr"

¡Siempre es muy importante probar su expresión regular antes de publicarla! De esta manera, se asegura de que los datos que desea recopilar sean correctos. Aquí tiene un probador de RegEx en línea gratuito: https://www.regextester.com/


Was this article helpful?