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/