Você está na página 1de 6

# Regular Expressions

# RegEx
# regex
# Tutorial rapido de expressoes regulares

# TEXTO EXEMPLO:
# Arquivo: texto1.txt
#--------------------------------

Abacaxi
Abacate
Limao com mel
123
1234567890
Merinae

#--------------------------------

# Arquivo: texto2.txt
#--------------------------------
O rato roeu a roupa do rei de roma.
Abacaxi
Laranja
Cadeira
Limao
Gripe
Mesa
Rogerio Veloso
Dinossauro
O dinosauro nao come rato pois ele nao enxerga bem
O valor do link saiu por 10 mil reais para compras acima de 1 giga
123
4567
890
123 123 123
99 99
888 888
888 888 999
888 888 999 000
#--------------------------------

# Arquivo: texto3.txt
#--------------------------------
Prezado Aluno,

e' com muita alegria que informo que sua


inscricao no curso de expressoes regulares (regex)
foi aceita e seu pagamento ja foi confirmado
no valor de 1.456,99 reais, sendo que o valor pago ao
mercado livre foi de 1.500,00 reais

Para participar do curso voce precisara' ficar


atento ao seu e-mail no dia 13/09/2019 pois
enviaremos para este email: aluno01@ajustefino.com
o endereco do webnar para participacao ao vivo

Lembrando que o curso comecara' em ate 15 minutos


apartir das 8:00 mesmo que hajam poucos alunos
Para sua comodidade entre no grupo do whatsapp:
http://whatsapp.com/?group=ABC938F83CEFA18A847B

Obrigado pela prefencia,


Patrick Brandao

Visite: www.ajustefino.com

.
#--------------------------------
#--------------------------------

# Primeiro coringa: ^
# ===============================
# Circunflexo serve para orientar
# ao motor de regex que ele deve
# se posicionar no inicio da linha
# para procurar o objeto deseja
# ^ = inicio da linha
#

> egrep ^1 texto1.txt


123
1234567890

# Segundo coringa: $
# ===============================
# Sifrao serve para orientar o
# motor de regex a se orientar pelo
# fim da linha
# $ = final da linha

> egrep ^123$ texto1.txt


123

# Terceiro coringa: .
# ===============================
# Ponto serve para orientar o
# motor de regex a procurar 1
# caracter qualquer
# . = 1 byte qualquer

> egrep . texto1.txt


(vai pegar o arquivo todo)

> egrep A....x. texto1.txt


Abacaxi

> egrep A.....e texto1.txt


Abacate

# Quarto coringa: +
# ===============================
# Mais server para especificar
# que o objeto anterior precisa
# ocorrer 1 ou mais vezes na frase
# mais = 1 ou mais ocorrencias do que veio antes
> egrep a.+e texto1.txt
Abacate
Limao com mel

# Quinto coringa: *
# ===============================
# Asterisco serve para informar
# ao motor regex que o objeto
# anteior pode ocorrer em
# qualquer quantidade ou nem
# ocorer
# * = qualquer quantidade do
# objeto anterior ou nada

> egrep a.*e texto.txt


Abacate
Limao com mel
Merinae

# Sexto coringa: ?
# ===============================
# Interrogacao serve para instruir
# ao motor regex que o objeto anterior
# e' opcional, pode nao estar presente

> egrep at?. texto1.txt


Abacaxi
Abacate
Limao com mel
Merinae

> egrep at?.$ texto1.txt


Abacate
Merinae

# Setimo coringa: _
# ===============================
# Underline tem o efeito de informar
# que naquela posicao ha um espaco
# tambem pode ser usado como \(espaco aqui)
# ou simplesmente digite o espaco
# _ = espaco (caracter espaco do teclado)

> egrep "o c" texto1.txt


Limao com mel

> egrep "o\ c" texto1.txt


Limao com mel

# Oitavo coringa: busca de itens em lista []


# ===============================
# [] serve para procurar itens numa
# lista especifica ou flexivel comparando
# cada byte da frase com a lista
# [algumacoisa] = procurar a coisa
> egrep "[0-4]" texto1.txt
123
1234567890

> egrep "[4-9]" texto1.txt


1234567890

> egrep "[1234]" texto1.txt


123
1234567890

> egrep "[a-z]" texto1.txt


Abacaxi
Abacate
Limao com mel
Merinae

> egrep "[a-z]" texto1.txt | egrep ao


Limao com mel

> egrep "[t-z]" texto1.txt


Abacaxi
Abacate

> egrep "[0-9a-z]" texto1.txt


(pega tudo, pois todas as linhas tem
algum caracter que esteja entre 0 e 9 ou entre a e z)

# Nono coringa: [^]


# ===============================
# Lista negada, tem como objetivo
# informar ao motor que o objeto
# em questao nao pode constar
# na lista, cada byte da frase
# sera testada na lista
# [^algumacoisa] = nao pode ter alguma coisa

> egrep "[^0-9]" texto1.txt


Abacaxi
Abacate
Limao com mel
Merinae

# Decimo coringa: {}
# ===============================
# Chaves (espelho): serve para
# verificar quantas vezes exatamente
# o objeto anterior se repete
# algumacoisa{3} = algumacoisa tem que ocorrer 3 vezes
# algumacoisa{1,3} = alguma coisa pode ocorrer 1 a 3 vezes
# algumacoisa {,3} = alguma coisa pode ocorrer ate 3 vezes ou nao ocorrer

# Decimo primeiro coringa: |


# ===============================
# Pipe (|) tem como funcao orientar
# ao motor regex que ha outro objeto
# para comparar caso o primeiro nao
# bata

> egrep 'at|ax' texto1.txt

# Decimo segundo coringa: ()


# ===============================
# Parenteses servem para envolver
# um objeto dando a ele um numero
# de controle $1, $2
# So tem proposito em programacao
# usando regex

> egrep '^..(ac)a(..)$' texto1.txt

# Decimo terceiro: \
# ===============================
# \ (barra invertida) tem como objetivo
# informar ao motor regex que o caracter
# seguinte nao tem poderedes de expressao
# regular:

> egrep '\.' texto3.txt


# (retorna linhas que tenha o caracter ponto)
no valor de 1.456,99 reais, sendo que o valor pago ao
mercado livre foi de 1.500,00 reais
enviaremos para este email: aluno01@ajustefino.com
http://whatsapp.com/?group=ABC938F83CEFA18A847B
Visite: www.ajustefino.com
.

# Procurando o caracter ponto seguido de numeros:


> egrep '\.[0-9]' texto3.txt
no valor de 1.456,99 reais, sendo que o valor pago ao
mercado livre foi de 1.500,00 reais

# ===============================
# ===============================
# ===============================
# ===============================

# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

# Exemplos:

# 1 - use -v para inverter a busca do egrep


# assim ele exibira apenas as linhas
# onde a expressao regular NAO funcionou

> egrep -v '^$' texto3.txt


# (retorna o texto sem as linhas vazias)

# 2 - remover linhas com comentarios dos textos:


> egrep '^#' /etc/debconf.conf
# (vai retornar so as linhas que comecam com #)

> egrep -v '^#' /etc/debconf.conf


# (vai retornar apenas linhas que NAO comecam com #)

# 3 - remover comentarios e apos remover linhas vazias


> egrep -v '^#' /etc/debconf.conf | egrep -v '^$'
# (vai retornar apenas as configuracoes uteis do arquivo)

# ===============================
# ===============================
# ===============================
# ===============================

Você também pode gostar