Construindo sua própria expressão regular

As expressões regulares são construídas colocando os vários componentes da expressão entre um par de delimitadores. Em JavaScript, os delimitadores são um par de caracteres de barra (/), conforme mostrado no exemplo a seguir.

 /expression/


Iniciar ^

Fim $

^ \ d {2} $

A seguir estão alguns metacaracteres comuns de regex e exemplos do que seria ou não compatível.

Metacaractere
Descrição
Exemplos
\ré
Inteiro 0 - 9
\ d \ d \ d = 327

\ d \ d = 81

\ d = 4

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

\ d \ d \ d ≠ 24631

\ d \ d \ d não retornará 24631 porque 24631 contém 5 dígitos. \ d \ d \ d corresponderá apenas a uma string de 3 dígitos.
\ W
Caracteres alfanuméricos
\ w \ w \ w = "cachorro"

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

\ w \ w = "a"

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

\ w \ w \ w = 467

\ w \ w \ w \ w = 4673

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

\ w \ w \ w ≠ "navio"

\ w \ w \ w não retornará "navio" porque "navio" contém 4 caracteres.

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

\ w ≠!

\ w não retornará o ponto de exclamação "!" porque é um caractere não alfanumérico.
\ W
Símbolos
\ W =%

\ W = #

\ W \ W \ W = @ #%

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

\ W \ W \ W \ W ≠ dog8

\ W \ W \ W \ W não retornará "dog8" porque d, o, ge 8 são caracteres alfanuméricos.
[Arizona]
[0-9]
Conjunto de caracteres, pelo menos um dos quais deve corresponder, mas não mais do que um, a menos que especificado de outra forma. A ordem dos personagens não importa.
pand [ora] = panda

pand [ora] = pando

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

pand [ora] ≠ Pandora

pand [ora] não retorna "pandora" porque está implícito em pand [ora] que apenas 1 caractere pode ser retornado em [ora].

(Os quantificadores que permitirão a pand [ora] corresponder a "pandora" serão discutidos abaixo).
(para BC)
-123
Grupo de caracteres, corresponde a abc ou 123 caracteres na ordem exata.
pand (ora) = pandora

pand (123) = pand123

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

pand (remar) ≠ pandora

pand (remo) não corresponde a "pandora" porque procura a frase exata "pandoar".
|
Alternar: permite combinações alternativas. | funciona como o booleano OR.
pand (abc | 123) = "pandora" OU "pand123"
{norte}
Corresponde quando o caractere anterior, ou grupo de caracteres, ocorre exatamente n vezes.
\ d {3} = 836

\ d {3} = 139

\ d {3} = 532

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

pand [ora] {2} = "pandar"

pand [ora] {2} = "pandoo"

pand (ora) {2} = "pandoraora"

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

Pandora [ora] {2} ≠ Pandora

pand [ora] {2} não corresponderá a "pandora" porque o quantificador {2} permite apenas 2 letras do conjunto de caracteres [ora].
{Novo México}
Corresponde quando o caractere anterior, ou grupo de caracteres, aparece pelo menos n vezes e no máximo m vezes.
\ d {2,5} = 97430

\ d {2,5} = 9743

\ d {2,5} = 97

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

\ d {2,5} ≠ 9

9 não corresponde porque tem 1 dígito, portanto, está fora do intervalo de caracteres.
?
O ponto de interrogação corresponde quando o caractere que precede o? o sinal ocorre 0 ou 1 vez apenas, tornando a correspondência de caracteres opcional.
colou? r = "cor" (u é encontrado 1 vez)

colou? r = "cor" (u é encontrado 0 vezes)
*
O asterisco corresponde quando o caractere antes de * corresponde a 0 ou mais vezes.

NOTA: * em RegEx é diferente de * em dtSearch. A expressão regular * pede para encontrar onde o caractere (ou agrupamento) que precede * ZERO ou mais vezes foi encontrado. dtSearch * pede para encontrar onde a cadeia de caracteres que precede * ou segue * 1 ou mais vezes foi encontrada.
tre * = "árvore" (e é encontrado 2 vezes)

tre * = "tre" (e é encontrado 1 vez)

tre * = "tr" (e é encontrado 0 vezes)

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

tre * ≠ "árvores"

tre * não corresponderá ao termo "árvores porque, embora" e "seja encontrado duas vezes, ele é seguido por" s ", que é ignorado na expressão regular."
+
O sinal de adição corresponde quando o caractere anterior ao + corresponde 1 ou mais vezes. O sinal + torna a correspondência de caracteres obrigatória.
tre + = "árvore (e é encontrado 2 vezes)

tre + = "tre" (e é encontrado 1 vez)

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

tre + ≠ "tr" (e é encontrado 0 vezes)

tre + não corresponderá a "tr" porque e é encontrado zero vezes em "tr".
. (período)
O ponto final corresponde a qualquer caractere alfanumérico ou símbolo.
tonelada. = "tom"

tonelada. = "ton #"

tonelada. = "ton4"

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

tonelada. ≠ "tons"

tonelada. não corresponderá ao termo "sombras" porque. por si só vai corresponder a um único caractere, aqui, na quarta posição do termo. Em "tons", o s é o quinto caractere e é ignorado na expressão regular.
. *
Combine os metacaracteres. e *, nessa ordem. * para corresponder a qualquer caractere 0 vezes ou mais.

NOTA:. * Em RegEx, é equivalente ao operador dtSearch wildcard *.
tr. * = "tr"

tr. * = "tre"

tr. * = "árvore"

tr. * = "árvores"

tr. * = "alimentador"

tr. * = "esteira"

É sempre muito importante testar seu regex antes de publicá-lo! Dessa forma, você garante que os dados que deseja coletar estão corretos. Aqui está um testador RegEx online gratuito: https://www.regextester.com/


Was this article helpful?