Você está na página 1de 19

E-BOOK

GUIA
RÁPIDO DE
REGEX

WWW.TREINAWEB.COM.BR
1. Componentes das expressões regulares 04
2. Formatos das expressões regulares 04
3. Matches 05
4. Meta-caracteres 05
4.1. Início (^) e fim ($) 06
4.2. Grupo de caracteres ([ e ]) 06
4.3. Ponto (.) 07
4.3.1. Operações lógicas 07
4.3.2. AND (.*) 07
4.3.3. OR (I) 08
4.3.4. NOT (^) 08
4.4. Meta-caracteres de quantificação 09
4.4.1. Chaves ({ e }) 09
4.4.2. Plus (+) 09
4.4.3. Interrogação (?) 09
4.4.4. Asterisco (*) 10
4.5. Outros meta-caracteres 10
4.5.1. Hífen (-) 10
4.5.2. Dígito e não-dígito (\d e \D) 11
4.5.3. Alfanumérico e não-alfanumérico (\w e \W) 11
4.5.4. Espaço e não espaço (\s e \S) 12
4.5.5. Bordas: word boundary (\b e \B) 13
4.5.6. Grupos de captura e não-captura ("()" e "(?:)") 13
4.5.7. Sucessão (?=) e não-sucessão (?!) 14
5. Quadro-resumo dos principais meta-caracteres RegEx 14
6. Expressões RegEx mais utilizadas 16

W W W . T R E I N A W E B .C O M . B R
INTRODUÇÃO

Seja bem-vindo! Este é um guia rápido de RegEx do


TreinaWeb.

RegEx é uma sigla em inglês que vem de “Regular


Expression”, ou, em português, “Expressão
Regular”, uma das ferramentas mais úteis para
desenvolvedores em geral.

Expressões regulares são expressões que


determinam formatos ou padrões de texto. As
expressões regulares são utilizadas principalmente
para extrair e validar informações. Sendo assim,
você pode, por exemplo, determinar um formato de
texto para extrair informações de uma página ou
montar uma expressão para validar a entrada de um
usuário... As possibilidades com expressões
regulares são muitas!

Boa leitura e bons estudos!

W W W . T R E I N A W E B .C O M . B R
03
1. Componentes das ENTRADA DE DADOS
expressões regulares teste@teste.com.br

Uma expressão regular tem três componentes


basicamente:
Engine
• A expressão regular em si, responsável por definir
EXPRESSÃO REGULAR
o padrão a ser aplicado na entrada;
/ˆ([\w\.\-]+)@([\w\-
]+)((\.(\w){2,3})+)$/g
• A entrada de dados, que constitui os dados que
irão sofrer a ação da expressão regular;

• A engine, que é o componente responsável por


aplicar a expressão.
RESULTADO
Por exemplo: vamos imaginar que precisamos de True / False

uma expressão regular para validar um e-mail.


Neste caso, teríamos as seguintes situações:
2. Formato das expressões
• A expressão regular deveria descrever o formato
válido de um e-mail;
regulares
• A entrada de dados seria o e-mail informado por
um usuário para ser validado; Uma expressão regular precisa obrigatoriamente
estar contida entre barras (/). Após a expressão,
• A engine seria a linguagem utilizada para a podem existir algumas indicações de execução que
aplicação da expressão regular. são chamadas de flags.

/<meta-caracteres>/[flags]

WWW.TREINAWEB.COM.BR
04
As flags indicam de maneira geral parâmetros pelo menos um match da expressão regular sob a
especiais para a execução da expressão regular entrada.
pela engine. As flags são opcionais, além de que sua
aceitação irá depender da engine que irá executar a Poderíamos representar os matches com o
expressão regular. diagrama apresentado anteriormente:

As flags mais comuns são:


ENTRADA DE DADOS
i (Ignore case) - Diferenças entre caracteres em teste@teste.com.br

caixa alta ou caixa baixa não devem ser levadas em


consideração.

g (Global source) - Permite captura de dados de Engine


maneira global na entrada de dados, além de
guardar os índices de ocorrência e permitir a EXPRESSÃO REGULAR
navegação entre elas /ˆ([\w\.\-]+)@([\w\-
]+)((\.(\w){2,3})+)$/g
m (Multiline) - Flag para informar que a entrada é
constituída por múltiplas linhas, fazendo com que a
expressão regular seja aplicada em cada uma das
linhas.
RESULTADO
Match(es)
3. Matches

4. Meta-caracteres
Um match é uma parte do texto que corresponde ao
formato especificado pela expressão regular. Se
pensarmos em uma expressão regular para
validação do formato de um dado de entrada, Os meta-caracteres são caracteres especiais que
poderíamos consider possuem um significado nas expressões regulares.

WWW.TREINAWEB.COM.BR
05
Eles servem para indicar para a engine como ela Veja que não houveram matches dentro da entrada
deve fazer a análise da entrada de dados. Um de dados, pois a expressão regular inserida diz que
conjunto destes meta-caracteres formam uma procuramos uma linha que comece com um
expressão regular, ou RegEx. caractere de 1 a 9.

Cada meta-caractere tem uma função específica e Se mudarmos a entrada de dados...


que pode mudar dependendo do contexto inserido.
Você pode fazer diversas combinações e realizar Expressão: /^[1,9]/g
expressões mais complexas com estas
combinações. Entrada: 1,2,3,4,5

Os principais meta-caracteres serão descritos a Saída: 1,2,3,4,5


seguir.
Agora o match passa a acontecer, já que a entrada
4.1. Início (^) e fim ($) de dados começa com o número 1.

ˆ (função “Início”) - Indica “começo de linha” em O funcionamento é muito similar para o


uma expressão regular. Sintaxe: /^<...>/ meta-caractere de fim de linha, que, como o próprio
nome sugere, faz a busca no final da entrada de
$ (função “Fim”) - Indica “final de linha” em uma dados:
expressão regular. Sintaxe: /<...>$/
Expressão: /^[1,9]/g

Veja a expressão regular abaixo: Entrada: 1,2,3,4,5

Expressão: /^[1,9]/g Saída: 1,2,3,4,5

Entrada: 0,1,2,3,4
4.2. Grupo de caracteres ([ e ])
Saída: 0,1,2,3,4

WWW.TREINAWEB.COM.BR
06
[ (função “Início de grupo”) - Indica o começo de 4.3. Ponto (.)
um grupo de caracteres. Sintaxe: /[<...>]/
. (função “Caractere “coringa”) - Representa
] (função “Fim de grupo”) - Indica o fim de um qualquer outro caractere. Sintaxe: /./
grupo de caracteres. Sintaxe: /[<...>]/
Por exemplo: vamos imaginar que desejamos
Por exemplo: vamos imaginar que desejamos obter recuperar todas as palavras que possuam quatro
todos os matches do nome “João”, independente de letras e que terminem com o sufixo “ato”.
estarem escritos com letra maiúscula ou minúscula e
com til ou sem til. Precisamos então informar a Expressão: /.ato/gm
engine que o primeiro caractere pode ser “j” ou “J”.
Também precisamos dizer à engine que o terceiro Entrada: gato
caractere pode ser “a” ou “ã”. mato
rato
Expressão: /[Jj]o[aã]o/gm martelato

Entrada: joao Saída: gato


joão mato
João rato
Joao martelato
Zoao

Saída: joao 4.3.1. Operações lógicas


joão
João Também temos meta-caracteres para representar as
Joao principais operações lógicas: AND, OR e NOT.
Zoao

4.3.2. AND (.*)

WWW.TREINAWEB.COM.BR
07
.* (função “Operação lógica AND”) - Realiza a Expressão: /^(super|hiper)mercado$/gm
operação lógica AND entre duas expressões.
Sintaxe: /<expressão 1>.*<expressão 2>/ Entrada: Supermercado
Hipermercado
Vamos imaginar que desejamos recuperar todos os Minimercado
nomes em uma lista que comecem e terminem com
vogais. Saída: Supermercado
Hipermercado
Expressão: /^[AEIOU].*[aeiou]$/gm Minimercado

Entrada: Amanda
Eduardo 4.3.4. NOT (^)
Alana
Emanuel ˆ (função “Operação lógica NOT”) - Realiza a
operação lógica NOT em uma expressão. Sintaxe:
Saída: Amanda /[^<expressão>]/
Eduardo
Alana Vamos imaginar que queiramos capturar, a partir de
Emanuel uma lista de nomes, todos os que não sejam
iniciados por vogais.

4.3.3. OR (I) Expressão: /^[^AEIOU].*/gm

| (função “Operação lógica OR”) - Realiza a Entrada: Amanda


operação lógica OR entre duas expressões. Eduardo
Sintaxe: /<expressão 1>|<expressão 2>/ Alana
Marcelo
Vamos imaginar que queiramos capturar todos os
mercados de médio e grande porte, sendo eles Saída: Amanda
supermercados ou hipermercados, de uma entrada Eduardo
de dados. Alana
Marcelo
WWW.TREINAWEB.COM.BR
08
4.4. Meta-caracteres de quantificação 4.4.2. Plus (+)

Expressões regulares também permitem a + (função “1 ocorrência ou mais”) - Verifica se o


quantificação de ocorrências de caracteres através caractere que estiver à esquerda ocorre pelo menos
de meta-caracteres específicos. uma vez na entrada de dados. Sintaxe:
/<expressão>+/
4.4.1. Chaves ({ e })
Por exemplo: vamos recuperar todas as ocorrências
ˆ (função “Repetição de expressão”) - Permite do caractere “a” dentro de uma entrada.
detectar/determinar a repetição de uma expressão
por n vezes ou dentro de um intervalo. Sintaxe: Expressão: /a+/gm
/<expressão>{nmin, nmax}/
Entrada: Música
Por exemplo: vamos escrever uma expressão Livro
regular que rastreie todas as palavras que Tecnologia
contenham 9 letras, sendo que as duas últimas
sejam o sufixo “ão”. Saída: Música
Livro
Expressão: /^.{7}ão$/gm Tecnologia
Alambrado
Entrada: Graduação
Exposição
Impressão 4.4.3. Interrogação (?)
Locução
? (função “0 ou 1 ocorrência”) - Verifica se o
Saída: Graduação caractere que estiver à esquerda ocorre nenhuma
Exposição vez ou pelo menos uma vez. Faz o papel de
Impressão “opcional”. Sintaxe: /<expressão>?/
Locução

WWW.TREINAWEB.COM.BR
09
Por exemplo: vamos recuperar todas as palavras Expressão: / ^oi*$/gm
que possuam o radical “cair”. Sendo assim,
devemos capturar palavras como “cai”, “cair”, “caio” Entrada: oi
e “caiu”. Veja que temos opcionalmente o radical oii
“cai” com as terminações “r”, “o” e “u” oiii
oioi
Expressão: / ^cai[r,u,o]?$/gm
Saída: oi
Entrada: cai oii
caiu oiii
caio oioi
cair
caída
4.5. Outros meta-caracteres
Saída: cai
caiu 4.5.1. Hífen (-)
caio
cair - (função “Intervalo”) - Verifica matches que
caída correspondam a um intervalo de caracteres. Sintaxe:
/[<início>-<fim>]/

4.4.4. Asterisco (*) Por exemplo: vamos buscar os nomes de pessoas


que comecem com as letras de A até M.
* (função “0 ou mais ocorrências”) - Verifica se o
caractere que estiver à esquerda ocorre nenhuma Expressão: /^[A-M].*$/gm
vez ou uma ou várias vezes. Sintaxe:
/<expressão>*/ Entrada: Gabriela
Catarina
Por exemplo: vamos recuperar todas as vezes que o Marina
usuário digitou “oi”, tendo ele digitado “oi”, “oii” ou Natália
“oiiii”.

WWW.TREINAWEB.COM.BR
10
Saída: Gabriela Expressão: /\D/gm
Catarina
Marina Entrada: 123
Natália Teste
Teste_123

4.5.2. Dígito e não-dígito (\d e \D) Saída: 123


Teste
\d (função “Dígito”) - Captura os caracteres que Teste_123
sejam correspondentes a números. Sintaxe:
/\d/ 4.5.3. Alfanumérico e não-alfanumérico (\w e \W)

\D (função “Não-dígito”) - Captura os caracteres \w (função “Alfa-numérico”) - Captura os


que sejam correspondentes a letras. Sintaxe: caracteres que sejam alfanuméricos, mais o
/\D/ underline. Sintaxe: /\w/

Por exemplo: vamos buscar todos os números em \w (função “Não-alfa-numérico”) - Captura os


uma entrada de dados. caracteres que não sejam alfanuméricos (como
caracteres especiais. Sintaxe: /\W/
Expressão: /\d/gm
Por exemplo: podemos querer capturar todos os
Entrada: 123 caracteres que sejam considerados alfa-numéricos.
Teste
Teste_123 Expressão: /\w/gm

Saída: 123 Entrada: Teste


Teste 1234
Teste_123 Teste_123
Teste$%Teste
Poderíamos também capturar exclusivamente as $%&*&
letras dessa mesma entrada.

WWW.TREINAWEB.COM.BR
11
Saída: Teste \S (função “Não-espaço”) - Captura os caracteres
1234 que não sejam correspondentes a espaços.
Teste_123 Sintaxe: /\S/
Teste$%Teste
$%&*& Por exemplo: se quisermos capturar todos os
espaços em uma entrada.
Também podemos recuperar matches com
caracteres especiais. Expressão: /\s/gm

Expressão: /\w/gm Entrada: Isso é um espaço


Isso é um espaço com tabulação
Entrada: Teste 123 45
1234
Teste_123 Saída: Isso é um espaço
Teste$%Teste Isso é um espaço com tabulação
$%&*& 123 45

Saída: Teste Também poderíamos recuperar todos os caracteres


1234 que não correspondessem a espaço.
Teste_123
Teste$%Teste Expressão: /\s/gm
$%&*&
Entrada: Isso é um espaço
4.5.4. Espaço e não espaço (\s e \S) Isso é um espaço com tabulação
123 45
\s (função “Espaço”) - Captura os caracteres
correspondentes a espaços (espaços propriamente Saída: Isso é um espaço
ditos, tabulações, quebras de linha e retornos). Isso é um espaço com tabulação
Sintaxe: /\s/ 123 45

WWW.TREINAWEB.COM.BR
12
4.5.5. Bordas: word boundary (\b e \B) 4.5.6. Grupos de captura e não-captura ("()" e
"(?:)")
\b (função “Borda inicial”) - Captura as bordas
iniciais das sequências de caracteres (primeiro () (função “Grupo de captura”) - Agrupa uma
caractere). Sintaxe: /\b<caractere>/ sequência de caracteres que deve ser capturada.
São produzidos sub-matches quando este
\B (função “Borda final”) - Captura caracteres que meta-caractere é utilizado. Sintaxe:
não estejam na borda de uma sequência de carac- /(<caracteres do grupo>)<meta-caractere a ser
teres. Sintaxe: /\B<caractere>/ aplicado no grupo>/

Por exemplo: podemos capturar todas as iniciais (?:) (função “Grupo de não-captura”) - Agrupa
com a letra “e” ou “E”. uma sequência de caracteres que não deve ser
capturada. São produzidos sub-matches quando
Expressão: /\b[eE]/gm este meta-caractere é utilizado. Sintaxe:
/(?:<caracteres do grupo>)<meta-caractere a ser
Entrada: Este é o e-book de RegEx do aplicado no grupo>/
TreinaWeb! Eba!
Por exemplo: podemos capturar a sequência “abc”,
Saída: Este é o e-book de RegEx do desde que essa se repita por três vezes.
TreinaWeb! Eba!
Expressão: /(abc){3}/
Também poderíamos capturar todas as finalizações
com os caracteres “e” e “E”. Entrada: abcabcabcabdab

Expressão: /\B[eE]/gm Saída: abcabcabcabdab

Entrada: Este é o e-book de RegEx do


TreinaWeb! Eba!

Saída: Este é o e-book de RegEx do


TreinaWeb! Eba!

WWW.TREINAWEB.COM.BR
13
Observação: Neste caso, são produzidos dois (?=) (função “Sucessão”) - Agrupa uma sequência
matches: de caracteres que deve ser capturada. São
produzidos sub-matches quando este
- Um correspondente à meta-caractere é utilizado. Sintaxe:
sequência “abcabcabc”, /(<caracteres do grupo>)<meta-caractere a ser
respeitando a quantificação à aplicado no grupo>/
frente do grupo de captura;
(?!) (função “Não-sucessão”) - Agrupa uma
- Outro correspondente ao grupo sequência de caracteres que não deve ser
de captura “abc”. capturada. São produzidos sub-matches quando
este meta-caractere é utilizado. Sintaxe:
Podemos também desejar que o match /(?:<caracteres do grupo>)<meta-caractere a ser
correspondente ao grupo de captura seja aplicado no grupo>/
desprezado com um grupo de não-captura.
Por exemplo: podemos desejar capturar a
Expressão: /(?:abc){3}/ quantidade de litros (que são seguidos por “l”) de
uma lista de unidades de medida.
Entrada: abcabcabcabdab
Expressão: /^\d+(?=\sl)/gm
Saída: abcabcabcabdab
Entrada: 1l
Observação: Neste caso, um único match é 30 m
produzido: o correspondente à 10 l
sequência “abcabcabc”. O 20 kg
match correspondente ao grupo
de captura é desprezado. Saída: 1l
30 m
10 l
4.5.7. Sucessão (?=) e não-sucessão (?!) 20 kg

WWW.TREINAWEB.COM.BR
14
Também podemos capturar as quantidades de todas
as relações que não são expressas em litros:

Expressão: /^\d{2}(?!\sl)/gm

Entrada: 1l
30 m
10 l
20 kg

Saída: 1l
30 m
10 l
20 kg

5. Quadro-resumo dos
principais meta-caracteres RegEx

WWW.TREINAWEB.COM.BR
15
WWW.TREINAWEB.COM.BR
16
6. Expressões RegEx mais
utilizadas

17
Aprenda as principais e mais
atuais tecnologias de
desenvolvimento web, desktop,
mobile e de edição de foto e
vídeo com os cursos mais
completos do Brasil.
CONHEÇA NOSSOS CURSOS

W W W . T R E I N A W E B .C O M . B R
ADO .NET

jetos do BD
Introdução e Pro

ACOMPANHE-NOS NAS REDES SOCIAIS

Visual Basic
W W W . T R E I N A W E B .C O M . B R

Você também pode gostar