Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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
/<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:
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.
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
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.
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>]/
WWW.TREINAWEB.COM.BR
10
Saída: Gabriela Expressão: /\D/gm
Catarina
Marina Entrada: 123
Natália Teste
Teste_123
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
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
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
Visual Basic
W W W . T R E I N A W E B .C O M . B R