SlideShare a Scribd company logo
1 of 36
Download to read offline
Globalcode – Open4education
ExpressõesRegularesparanovatos,usando
Python
AmomMendes
Globalcode – Open4education
Agenda
• Oquesãoexpressõesregulares
• Paraqueservem?
• Metacaracteres
• Notebook
Globalcode – Open4education
Agenda
• Oquesãoexpressõesregulares
• Paraqueservem?
• Metacaracteres
• Notebook
Globalcode – Open4education
Agenda
• Oquesãoexpressõesregulares
• Paraqueservem?
• Metacaracteres
• Notebook
Globalcode – Open4education
Agenda
• Oquesãoexpressõesregulares
• Paraqueservem?
• Metacaracteres
• Notebook(talvez!)
Globalcode – Open4education
Motivação
Globalcode – Open4education
Motivação
Globalcode – Open4education
OquesãoExpressõesregulares?
Globalcode – Open4education
OquesãoExpressõesregulares?
“Método formal de especificar um
padrão de texto”
import re
Globalcode – Open4education
OquesãoExpressõesregulares?
“Hoje tem trilha de Python no TDC”
Caracteresliterais
Globalcode – Open4education
OquesãoExpressõesregulares?
“Hoje tem trilha de Python no TDC”
re.search (r‘(?i)
(python).*(tdc))
Caracteresliterais
Regra(Símb.+Carac.Fn.Especiais)
Globalcode – Open4education
OquesãoExpressõesregulares?
“Hoje tem trilha de Python no TDC”
re.search (r‘(?i)
(python).*(tdc))
‘Python no tdc’
Caracteresliterais
Regra(Símb.+Carac.Fn.
Especiais)
Match(casou)
Globalcode – Open4education
Paraqueservem?
• Muita|Qualquercoisarelacionadaabuscadepadrõesdecaracteres
• Routerdepáginas(ex.django)
• Datas/Horários
• Nomes
• E-mails
• WebScrapping
• Consultabancosdedados
• Substituiçãodecaracteres
• Etc,etc
Globalcode – Open4education
Porondecomeçar?
Globalcode – Open4education
Metacaracteres
• Principais
. ? * + ^ $ | [ ] { } ( )
Globalcode – Open4education
Metacaracteres
• Simplificando
^$b
Representantes Quantificadores
Âncoras Outros
. [ ][^] ?*+{ }
 | (..) 1
Globalcode – Open4education
Metacaracteres
.
Métodofindall:retornaumlista
comtextoscasados( )
• Representantes
Globalcode – Open4education
Metacaracteres
.
re.findall(r'n.o', #Expressão
'não, nao, neo, nso,
nzo,nap')#String
['não', 'nao', 'neo', 'nso', 'nzo']
• Representantes
Globalcode – Open4education
Metacaracteres
[...]
• Representantes
Globalcode – Open4education
Metacaracteres
re.findall (r'[naão]',
'não, nao, neo')
['n', 'ã', 'o', 'n',
'a', 'o', 'n', 'o']
• Representantes
Globalcode – Open4education
Metacaracteres
m = re.search(r'[0-9][0-9]:[0-9][0-9]',
'Cheguei as 11:00 horas no TDC hoje')
m.group()
• Representantes
Globalcode – Open4education
Metacaracteres
m = re.search(r'[0-9][0-9]:[0-9][0-9]',
'Cheguei as 11:00 horas no TDC hoje')
m.group()
Métodosearch:testasecasoueretorna
umobjetocominformaçõesdomatch( )
• Representantes
Globalcode – Open4education
Metacaracteres
m = re.search(r'[0-9][0-9]:[0-9][0-9]',
'Cheguei as 11:00 horas no TDC hoje')
m.group()
11:00
• Representantes
Globalcode – Open4education
m = re.findall(r'[^A-z ]’, 'Cheguei as 11:
00 horas no TDC hoje')
['1', '1', ':', '0', '0']
Metacaracteres
• Representantes
Globalcode – Open4education
?
Metacaracteres
• Quantificadores
Globalcode – Open4education
re.findall (r'fala[r!]?',
'falar, fala!, fala')
['falar', 'fala!', 'fala']
Metacaracteres
• Quantificadores
Globalcode – Open4education
*
Metacaracteres
• Quantificadores
Globalcode – Open4education
re.findall (r'Ah*!',
'Ah!, Ahhh!, Ahhhh!, Ahhhhhhhhh!')
['Ah!', 'Ahhh!', 'Ahhhh!',
'Ahhhhhhhhh!']
Metacaracteres
• Quantificadores
Globalcode – Open4education
.*
re.findall (r'Ah.*!', 'Ah!,
Ahhh!, Ahhhh!,A(h * 1000)!')
'Ah!, Ahhh!, Ahhhh!,A
(h * 1000)!'
Metacaracteres
• Quantificadores
Globalcode – Open4education
+
if re.search(r'Ah+!', 'A!'):
print (‘Casou’)
else:
print (‘Não Casou’)
Não Casou
Metacaracteres
• Quantificadores
Globalcode – Open4education
{ }
Metacaracteres
• Quantificadores
Globalcode – Open4education
re.findall (r'Ah{1,3}!','Ah!, Ahhh!,
Ahhhh!, Ahhhhhhhhh!')
['Ah!', 'Ahhh!']
Metacaracteres
• Quantificadores
Globalcode – Open4education
Metacaracteres
• Ancoras
Globalcode – Open4education
= fome!
Metacaracteres
• Ancoras
Globalcode – Open4education
notebook
Globalcode – Open4education
Obrigado!
amommendes@gmail.com

More Related Content

Similar to Expressões regulares para novatos, usando Python

TDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de DadosTDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de Dadostdc-globalcode
 
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPCombatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPRodrigo Dos Santos
 
TDC2013 - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...
TDC2013  - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...TDC2013  - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...
TDC2013 - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...José Correia
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Jonathan Prates
 
TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...
TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...
TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...tdc-globalcode
 
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Adam Victor Brandizzi
 
Organizando a casa. o front end do jeitinho que a mamãe gosta
Organizando a casa. o front end do jeitinho que a mamãe gostaOrganizando a casa. o front end do jeitinho que a mamãe gosta
Organizando a casa. o front end do jeitinho que a mamãe gostaJohnathan Cardoso
 
5 motivos para usar JNoSQL - Fernando Boaglio - TDC2018
5 motivos para usar JNoSQL - Fernando Boaglio - TDC20185 motivos para usar JNoSQL - Fernando Boaglio - TDC2018
5 motivos para usar JNoSQL - Fernando Boaglio - TDC2018Fernando Boaglio
 
Abertura Trilha de Teste TDC 2011 Goiånia
Abertura Trilha de Teste TDC 2011 GoiåniaAbertura Trilha de Teste TDC 2011 Goiånia
Abertura Trilha de Teste TDC 2011 GoiåniaElias Nogueira
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaCleber Dantas
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...Rafael Chiavegatto
 
Existem informações valiosas escondidas nos code-reviews do seu time
Existem informações valiosas escondidas nos code-reviews do seu timeExistem informações valiosas escondidas nos code-reviews do seu time
Existem informações valiosas escondidas nos code-reviews do seu timeDécio Heinzelmann Luckow
 
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Edlaine Zamora
 
Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumMaximiliano Alves
 
TDC SP 2017 Trilha .NET - TechWar: Threads, ThreadPools e Tasks em C#
TDC SP 2017 Trilha .NET - TechWar: Threads, ThreadPools e Tasks em C#TDC SP 2017 Trilha .NET - TechWar: Threads, ThreadPools e Tasks em C#
TDC SP 2017 Trilha .NET - TechWar: Threads, ThreadPools e Tasks em C#Diego Gabriel Cardoso
 
DataOps: Estendendo as práticas de DevOps para BigData
DataOps: Estendendo as práticas de DevOps para BigDataDataOps: Estendendo as práticas de DevOps para BigData
DataOps: Estendendo as práticas de DevOps para BigDataEduardo Hahn
 
Tdc2015 NoSQL-documentdb
Tdc2015 NoSQL-documentdbTdc2015 NoSQL-documentdb
Tdc2015 NoSQL-documentdbthdotnet
 

Similar to Expressões regulares para novatos, usando Python (20)

TDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de DadosTDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de Dados
 
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHPCombatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
Combatendo o Código Procedural - TDC 2012 Florianópolis - Trilha PHP
 
TDC2013 - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...
TDC2013  - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...TDC2013  - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...
TDC2013 - Trilha de Testes - Iterasys - José Correia - Testar em Multiplos A...
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014Migração de Banco de Dados - Oracle para MongoDB - TDC2014
Migração de Banco de Dados - Oracle para MongoDB - TDC2014
 
TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...
TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...
TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...
 
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
 
Organizando a casa. o front end do jeitinho que a mamãe gosta
Organizando a casa. o front end do jeitinho que a mamãe gostaOrganizando a casa. o front end do jeitinho que a mamãe gosta
Organizando a casa. o front end do jeitinho que a mamãe gosta
 
5 motivos para usar JNoSQL - Fernando Boaglio - TDC2018
5 motivos para usar JNoSQL - Fernando Boaglio - TDC20185 motivos para usar JNoSQL - Fernando Boaglio - TDC2018
5 motivos para usar JNoSQL - Fernando Boaglio - TDC2018
 
Abertura Trilha de Teste TDC 2011 Goiånia
Abertura Trilha de Teste TDC 2011 GoiåniaAbertura Trilha de Teste TDC 2011 Goiånia
Abertura Trilha de Teste TDC 2011 Goiånia
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
 
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...Testes de aceitação automatizados com robotium utilizando a técnica bdd   TDC...
Testes de aceitação automatizados com robotium utilizando a técnica bdd TDC...
 
Existem informações valiosas escondidas nos code-reviews do seu time
Existem informações valiosas escondidas nos code-reviews do seu timeExistem informações valiosas escondidas nos code-reviews do seu time
Existem informações valiosas escondidas nos code-reviews do seu time
 
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
Teste de performance com JMeter: como criar e executar os testes em aplicaçõe...
 
Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appium
 
IC-Testes Invasao
IC-Testes InvasaoIC-Testes Invasao
IC-Testes Invasao
 
TDC SP 2017 Trilha .NET - TechWar: Threads, ThreadPools e Tasks em C#
TDC SP 2017 Trilha .NET - TechWar: Threads, ThreadPools e Tasks em C#TDC SP 2017 Trilha .NET - TechWar: Threads, ThreadPools e Tasks em C#
TDC SP 2017 Trilha .NET - TechWar: Threads, ThreadPools e Tasks em C#
 
DataOps: Estendendo as práticas de DevOps para BigData
DataOps: Estendendo as práticas de DevOps para BigDataDataOps: Estendendo as práticas de DevOps para BigData
DataOps: Estendendo as práticas de DevOps para BigData
 
Tdc2015 NoSQL-documentdb
Tdc2015 NoSQL-documentdbTdc2015 NoSQL-documentdb
Tdc2015 NoSQL-documentdb
 
Tdc2015 NoSQL-documentdb
Tdc2015 NoSQL-documentdbTdc2015 NoSQL-documentdb
Tdc2015 NoSQL-documentdb
 

Expressões regulares para novatos, usando Python