Folha de Dicas de Expressões Regulares

Folha de Dicas de Expressões Regulares 00 Imagem em Destaque

Se você trabalha com texto, vai apreciar como as expressões regulares são úteis. Esses são pequenos caracteres de texto que permitem criar regras elaboradas sobre como uma palavra é apresentada. Essas regras podem ser tão simples quanto corresponder a uma única letra em um documento ou algo complexo, como procurar por todas as palavras que começam com “a” e “c”, mas terminam em “ismo”.

Baixe esta Folha de Dicas

Insira seu e-mail abaixo para receber este PDF da folha de dicas na sua Caixa de Entrada.

Expressões Regulares Essenciais

As expressões regulares (ou regex para abreviar) estão em todos os lugares em ambientes Linux para buscar através de texto até o nível de caracteres. Esta folha de dicas de expressões regulares será útil para pessoas que simplesmente precisam de uma pequena atualização de tempos em tempos.

Uma coisa importante a notar, no entanto, é que o conjunto de expressões regulares utilizáveis depende amplamente do tipo de padrão que um software utiliza. Por exemplo, terminais Linux comuns costumam usar o padrão POSIX, enquanto o Vim e Perl utilizam definições não padrão.

MetacaractereDescriçãoExemplo
Correspondência de Caracteres
AProcure qualquer instância da letra “a” em um documento e a corresponda.a corresponde a “formiga”, “gato” e “anna”.
.Corresponde a qualquer caractere único, exceto caracteres de controle.c.t corresponde a “gato”, “corte” ou “cot”.
*Repete a expressão anterior 0 ou mais vezes (modo guloso).12*3 corresponde a “13”, “123”, “1223”, “12223”. Pode ser usado junto com “.”, como em m.*easier que corresponde a “maketecheasier”. Usar .* sozinho é irrelevante, pois corresponde a tudo e retorna o resultado completo.
+Repete a expressão anterior 1 ou mais vezes.12+3 corresponde a “123”, “1223”, “12223”.
?Torna o item anterior opcional.ma?ke corresponde a “make”, “mke”.
^Corresponde ao início da string.^he corresponde a “olá”, “inferno”, “ajuda”, “ele é um menino”.
$Corresponde ao final da string.ed$ corresponde a “atuado”, “cama”, “ganância”.
Correspondência de Intervalos
( … )Agrupamento de caracteres ou expressão.(ak) corresponde a “faça”, “pegue”.
{ n }Corresponde ao item anterior exatamente n vezes.12{3}5 corresponde a “12225”.
[ … ]Corresponde a um único caractere no colchete.[abc] corresponde a “a”, “b” ou “c” na string “abc”.
[^ … ]Corresponde a qualquer caractere, exceto aqueles definidos no colchete.a[^b]c corresponde a “aec”, “acc”, “adc”, mas não “abc”.
Correspondência de Classe (POSIX)
[:alpha:]Procura qualquer caractere no alfabeto inglês e corresponde.[[:alpha:]]ut corresponderá às palavras “mas”, “corte” e “rut”.
[:alnum:]Procura qualquer caractere e número e corresponde.[[:alnum:]]tack corresponderá “stack” e “5tack”.
[:blank:]Procura uma instância de um tab ou um espaço e corresponde.[[:blank:]]Hello corresponderá ” Hello”.
[:space:]Procura qualquer caractere de espaço em branco e corresponde.[[:space:]]World corresponderá ” World”.
[:upper:]Procura qualquer letra maiúscula e corresponde.[[:upper:]]+ corresponderá às palavras “OLÁ”, “FAntástico” e “mUNDO”.
[:lower:]Procura qualquer letra minúscula e corresponde.[[:lower:]]+ corresponderá às palavras “olÁ”, “FAntástico” e “mundo”.
[:punct:]Procura qualquer caractere de pontuação e corresponde.\w+[[:punct:]] corresponderá às seguintes palavras: “Oi!”, “Oi.” e “Você?”.
[:cntrl:]Procura qualquer caractere de controle e corresponde.\w+[[:cntrl:]]$ corresponderá às seguintes palavras: “end^M”, “word^M” e “this^M”.
[.ng.]Procura qualquer dígrafo “ng” e corresponde.bad[.zh.] corresponderá à palavra “distintivo”.
[=n=]Encontra e corresponde a todas as letras diacríticas de “n”.[=a=]\w+ corresponderá às palavras “ànna”, “ápple” e “âble”.
Correspondência de Classe (Perl/Vim)
\BProcura qualquer caractere que não seja uma borda de palavra e corresponde.\B+\b corresponderá a “o ” em “olá ”, assim como ” h” em ” oi”.
\wProcura qualquer letra e número, e então corresponde.\w{5} corresponderá à seguinte combinação de letras e números: “mundo”, “12345” e “w0r1d”.
\WProcura qualquer símbolo e corresponde.\w{2}\W\b corresponderá às seguintes palavras: “como.”, “ha!” e “me?”.
\dProcura qualquer número e corresponde.\d{3} corresponderá aos seguintes números: “111”, “777” e “888”.
\DProcura qualquer caractere que não seja um número e corresponde.\D{3} corresponderá às seguintes letras e símbolos: “formiga”, “ba!” e “!#*”.

| \s | Procura qualquer caractere de espaço em branco e corresponde. | a\w+(i|y)sm\s corresponderá às seguintes palavras: “altruísmo “, “albinismo ” e “aneurisma “. | | \S | Procura qualquer caractere que não seja um espaço em branco e corresponde. | \S{5} corresponderá a: “123oi”, “oi!^&” e “ | | \A | Encontra o início de uma palavra, independentemente de não estar no início de uma linha. | \A{2} corresponderá a “Ele” e “wo” em “Olá mundo”. | | \Z | Encontra o final de uma palavra, independentemente de não estar no final de uma linha. | \z{2} corresponderá a “lo” e “ld” em “Olá mundo”. | | Caracteres de Controle | | | | | | Corresponde à expressão à esquerda ou à direita do pipe. | col(o|ou)r corresponde a “cor”, “cor”. | | – | Especifica um intervalo de caracteres a serem correspondidos. Usado principalmente em [a-z], [A-Z],[1-9],[a-zA-Z1-9]. | a[a-z]c corresponde a “abc”, “acc”, “adc”. | | \ | Escapa um caractere especial e o transforma em um caractere comum. | a\*c corresponde a “ac”. | | \n, \r, \t | Corresponde a um caractere de nova linha, retorno e tabulação, respectivamente. | \w{5}\t\w{5}(\n|\r) corresponderá a “Olá Mundo”. | | \b…\b | Corresponde a uma palavra dentro da borda. | \bTech\b corresponde à palavra “Tech” em “Faça a Tecnologia Mais Fácil”. | | *Expressões Complexas | | | | [0-9]{3}-[0-9]{4} | Procura qualquer sequência de números de três e quatro dígitos e corresponde. | Esta expressão corresponderá à seguinte combinação de números: “123-1234”, “111-1111” e “777-1234”. | | ([0-9]{3}-)?[0-9]{3}-[0-9]{4} | Corresponde a dois números de três dígitos e um único número de quatro dígitos. | Esta expressão corresponderá às seguintes combinações: “123-123-1234”, “000-111-0001” e “777-5678”. | | .{1,3} | Procura qualquer palavra que tenha entre um e três caracteres de comprimento. | Esta expressão corresponderá às seguintes palavras: “em”, “ele” e “pode”. | | ([A-Z])\w+ | Corresponde a qualquer palavra que comece com letra maiúscula. | Esta expressão corresponderá às seguintes palavras: “Olá”, “Mundo” e “Ei”. | | e[([:digit:]|[:alnum:])]c | Corresponde a qualquer caractere alfanumérico entre “e” e “c”. | Esta expressão corresponderá às seguintes combinações: “e1c”, “e5c” e “e7c”. | | [^0-9[:upper:]]+ | Procura qualquer palavra totalmente capitalizada que não comece com um número. | Esta expressão corresponderá às seguintes palavras: “OLÁ”, “MUNDO” e “EI”. | | “.+” | Encontra uma palavra entre aspas e a corresponde. | Esta expressão corresponderá à seguinte citação: “Olá, mundo!”.

Crédito da imagem: Unsplash