Árvore de páginas

"Em ciência da computação, uma expressão regular ou 'Regex' provê uma forma concisa e flexível de identificar cadeias de caracteres de interesse, como caracteres particulares, palavras ou padrões de caracteres." Veja mais aqui .

Expressões regulares podem ser concatenadas para formar novas expressões regulares. Assim, expressões complexas podem ser construídas a partir de expressões mais simples.

Uma expressão regular é composta por caracteres comuns e funções. Essas funções são representadas por alguns caracteres especiais, conhecidos como metacarateres.

Exemplos de metacaracteres: [], +, ^. etc. Entenderemos a funcionalidade de cada um deles.

Há metacaracteres com propósitos semelhantes, por exemplo (*, +,?, {M, n}, etc) são ditos qualificadores de repetição enquanto (^e $, etc) são ditos qualificadores âncora.

Uma expressão regular é resolvida por um determinado mecanismo. Cada mecanismo ou "motor" interpreta e suporta sintaxes diferentes, ou seja, o significado dos metacaracteres pode mudar dependendo do mecanismo de regex que está sendo usado. Utilizamos a biblioteca RE2 (PCRE).

Detalhando Metacaracteres

Os principais metacaracteres estão descritos no quadro abaixo:

Descrição

Caractere

Função

Escape\O caractere de escape é usado para determinar como um caractere subsequente será interpretado.
Acento^Usado para denotar o início de uma expressão regular.
Dólar$Usado para expressar o fim de uma expressão regular ou o final de uma linha.
Colchetes[ ]Usado para verificar qualquer caractere único em um conjunto de caracteres especificado entre [ ].
Parênteses( )Usado para selecionar e verificar uma string.
Interrogação?É usado para verificar zero (nenhuma ocorrência) ou uma ocorrência do caractere que o precede.
Sinal de ++É usado para verificar uma ou mais ocorrências do caractere que o precede.
Asterisco*É usado para verificar qualquer número de ocorrências (incluindo zero ocorrências) do caractere que o precede.
Ponto.É usado para verificar um único caractere (qualquer caractere que possa ser digitado no teclado que não seja um caractere de quebra de linha (n)).
Pipe|É interpretado por “OU” na lógica de uma regex.
Exclamação!É interpretado por “NÃO” na lógica de uma regex. Mas ao contrário de ^ (circunflexo), o ! é usado apenas no início de uma regra ou condição.
Chaves{ }Usado para verificar uma ou mais ocorrências do caractere anterior. É como o metacaractere +, mas fornece controle sobre o número de ocorrências do caractere que você deseja corresponder na regex.
Espaço em branco ou vazio
Para criar um espaço em branco em uma expressão regular, basta usar um espaço em branco.


Classes Predefinidas de Caracteres

Há algumas classes de caracteres que já são definidas, isso facilita na construção de uma expressão regular. Por exemplo, sempre que você quiser encontrar um dígito você pode utilizar o d em vez de [0-9], são equivalentes.

Classe

Caractere

Descrição

[:digit:]dEquivalente a [0-9]
^[:digit]DNão dígito
[:alnum]
letras e números ; equivalente a [A-Za-z0-9]
[:alpha:]
letras; equivalente a [A-Za-z]
[:space:]\scaracteres brancos ; equivalente a [ tnrfv]
^[:space:]\S
[:word:]\wqualquer caractere alfanumérico, mais underscore (); equivalente a [[:alnum:]]
^[:word:]\W
[:lower:]
minúsculas; equivalente a [a-z]
[:upper:]
maiúsculas; equivalente a [A-Z]
[:punct:]
caracteres de pontuação; equivalente a [.,!?:...]
[:xdigit:]
números hexadecimais; equivalente a [0-9A-Fa-f]
[:blank:]
espaço em branco e TAB; equivalente a [t]
[:punct:]
pontuação; equivalente a [!"#$%&'()*+,-./:;[\]_`{|}~]


Metacaracters Âncoras

Caractere

Descrição

Modelo

Representação

Explicação

\Ginício da busca"/(?:George\G) likes ([^ ]+)/""Bob likes pie, George likes icecream"Isso corresponderá apenas no ponto de partida da pesquisa ou na posição em que a correspondência anterior foi concluída com êxito. Útil com o sinalizador / g, ou quando você está apenas tentando corresponder após um certo ponto em uma string.
^início da linha"^abc""abcde"Corresponde ao início de uma sequência sem consumir caracteres. Se o modo multilinha for usado, isso também corresponderá imediatamente após um caractere de nova linha.associa texto que inicia com a sequência "abc", embora não "yabc".
$fim da linha"abc$""yzabc"associa texto que termina com a sequência "abc", embora não "abcde".
\Ainício da string"\Apattern""patterns"Corresponde apenas ao início de uma sequência. Ao contrário de ^, isso não é afetado pelo modo de múltiplas linhas.
\Zfim da string"pattern\Z""topattern"Corresponde apenas ao fim de uma sequência. Ao contrário de $, isso não é afetado pelo modo de múltiplas linhas.
\zfim absoluto da string"pattern\z""topattern"Corresponde apenas ao final de uma sequência. Ao contrário de $, isso não é afetado pelo modo de múltiplas linhas e, ao contrário de \ Z, não será correspondido antes de uma nova linha final no final de uma sequência.
\bfronteira do caractere"car\b""car"; "tocar"associa a fronteira da palavra "car", embora não "carburador".
\Bnão fronteira do caractere"car\B""carburetor"não associa a fronteira da palavra "car", mas pode assegurar que a sequência ocorra no meio da palavra, como "carburador", embora não "tocar".


Metacaracters Agrupamento

Caractere

Descrição

[]usado para indicar o conjunto de caracteres que podem conter no texto pesquisado
[^]usado para indicar o conjunto de caracteres que NÃO podem conter na pesquisa.
(...)indica o início e o fim de um grupo; ex.: /(abc)+(def)/ encontra um ou mais ocorrencias de "abc" seguido por uma ocorrencia de "def". obs.: para usar o parêntese, literalmente, utilize o caractere de escape " (" ou " )", ou ainda, "[ ( ]" ou "[ ) ]"


Metacaracters Quantificadores

Caractere

Descrição

Modelo

Representação

Explicação


zero ou mais vezes "zo""z" ; "zoo"o caractere que precede o asterisco pode ser repetido 0 ou mais vezes (equivalente a "{0,}")
+uma ou mais vezes"zo+""zo" ; "zoo"o caractere que precede o sinal de (+) pode ocorrer 1 ou mais vezes (equivalente a "{1,}")
?zero ou uma vez"do(es)?""do" ; "does"o caractere que precede o sinal de interrogação pode ocorrer 0 ou 1 vez (equivalente a "{0,1}")
{n}n vezes"o{2}""food"o caractere que precede o sinal pode ocorrerá n vezes
 {n,}pelo menos n vezes"o{2,}""foooood"a sequência "{0,}" é equivalente a "o*"; a sequência "{1,}" é equivalente a "o+"
{n,m}no mínimo n e no máximo m"o{1,3}""foooood"associa aos três primeiros "ooo"; é equivalente a "o?"
.um caractere simples, exceto "n""o.""oa"representa um caracter simples, exceto "n" ( para associá-lo utilize o padrão "[sS] " )
[xyz]um dos caracteres que está dentro dos colchetes"[abc]""plain"associa "a" contido na palavra "plain"
[a–z]um dos caracteres que está dentro dos colchetes"[a–z]"
associa um dos caracteres de 'a' até 'z' em caixa baixa, lembre-se que expressões regulares são case-sensitive


Metacaracters Alternador

O caracters "|" (pipe) representa uma ou outra ocorrência. Por exemplo, o padrão "(p|r)ato" indica "pato" ou "rato".

Exemplos de Regex

Regex

SIGNIFICADO

^(.html)$ Verifica qualquer ocorrência de caracteres que precede .html
^dog$|Procura a string “dog”
 ^a+$Verifica a ocorrência de uma ou mais letras minúsculas “a”.
^(abc)+$Verifica uma ou mais ocorrências da string “abc”.
^(abc)$Verifica qualquer número de ocorrências da string “abc”.
^a*$Verifica qualquer número de ocorrências da letra minúscula “a”.

 

  • Sem rótulos