7/25/2019 Aurelio Regex
1/51
Expresses Regulares
Aurelio Jargas
http://aurelio.net@oreio
7/25/2019 Aurelio Regex
2/51
http://aurelio.net/regex/guia
7/25/2019 Aurelio Regex
3/51
http://piazinho.com.br
7/25/2019 Aurelio Regex
4/51
Regex?
de comer?
7/25/2019 Aurelio Regex
5/51
cora[c][a]o
7/25/2019 Aurelio Regex
6/51
cora[c][a]o
7/25/2019 Aurelio Regex
7/51
cora[c][a]o
corao
coraao
coracocoracao
7/25/2019 Aurelio Regex
8/51
(mini|super|hiper)mercado
7/25/2019 Aurelio Regex
9/51
(mini|super|hiper)mercado
7/25/2019 Aurelio Regex
10/51
(mini|super|hiper)mercado
minimercado
supermercado
hipermercado
7/25/2019 Aurelio Regex
11/51
(mini|super|hiper)?mercado
minimercado
supermercado
hipermercado mercado
7/25/2019 Aurelio Regex
12/51
\d\d\.\d\d\d-\d\d\d
7/25/2019 Aurelio Regex
13/51
\d\d\.\d\d\d-\d\d\d
7/25/2019 Aurelio Regex
14/51
\d\d\.\d\d\d-\d\d\d
80.000-000
80.220-320
12.345-67877.777-777
7/25/2019 Aurelio Regex
15/51
7/25/2019 Aurelio Regex
16/51
\d{3}\.\d{3}\.\d{3}-\d{2}
7/25/2019 Aurelio Regex
17/51
\d{3}\.\d{3}\.\d{3}-\d{2}
7/25/2019 Aurelio Regex
18/51
\d{3}\.\d{3}\.\d{3}-\d{2}
015.010.014-55
685.706.259-13
243.287.109-71999.999.999-99
7/25/2019 Aurelio Regex
19/51
7/25/2019 Aurelio Regex
20/51
.*
7/25/2019 Aurelio Regex
21/51
.*
Ol
1, 2, 3, testando...
negrito
7/25/2019 Aurelio Regex
22/51
cora[c][a]o(mini|super|hiper)mercado
\d\d\.\d\d\d-\d\d\d
\d{3}\.\d{3}\.\d{3}-\d{2}
.*
7/25/2019 Aurelio Regex
23/51
cora[c][a]o(mini|super|hiper)mercado
\d\d\.\d\d\d-\d\d\d
\d{3}\.\d{3}\.\d{3}-\d{2}
.*
7/25/2019 Aurelio Regex
24/51
7/25/2019 Aurelio Regex
25/51
7/25/2019 Aurelio Regex
26/51
Onde usar
expresses regulares?
7/25/2019 Aurelio Regex
27/51
Editores de texto
Emacs Vim gedit Kate Sublime Text Atom
TextMate Notepad++
IDE Office
Android Studio Eclipse Xcode Visual Studio
LibreOffice
Google Planilhas Microsoft Word
7/25/2019 Aurelio Regex
28/51
7/25/2019 Aurelio Regex
29/51
Apache Nginx
Servidores HTTP
# Usar URLs amigveis em vez de query strings feiosas
# De: http://example.com/produto/1234/info
# Para: http://example.com/produto.php?id=1234&action=info
RewriteEngineon RewriteRule"^/(\w+)/(\d+)/(\w+)$"/$1.php?id=$2&action=$3
7/25/2019 Aurelio Regex
30/51
7/25/2019 Aurelio Regex
31/51
C C# C++ Delphi Go Haskell
Java JavaScript Lua
Linguagens de programao
Objective-C Perl PHP Python R Ruby
Scala Tcl Visual Basic
7/25/2019 Aurelio Regex
32/51
7/25/2019 Aurelio Regex
33/51
CEP:
7/25/2019 Aurelio Regex
34/51
7/25/2019 Aurelio Regex
35/51
7/25/2019 Aurelio Regex
36/51
Procure por:Troque por:
(.*)$1
Oi, tudo bem?
Tudo bem.
Oi, tudo bem?Tudo bem.
7/25/2019 Aurelio Regex
37/51
Procure por:Troque por:
(n[a]o)$1
Tenho muito a dizer!
Mas no lembro agora...
Tenho muito a dizer!Mas nolembro agora...
7/25/2019 Aurelio Regex
38/51
Procure por:Troque por:
(\d\d):(\d\d)$1horas e $2minutos
12:34
23:59
12 horas e 34 minutos23 horas e 59 minutos
7/25/2019 Aurelio Regex
39/51
Procure por:Troque por:
(\d{2})(\d{3})(\d{3})$1.$2-$3
80220320
87654321
80.220-32087.654-321
7/25/2019 Aurelio Regex
40/51
Procure por:Troque por:
[^0-9]
80.220-320
12.345-678
8022032012345678
7/25/2019 Aurelio Regex
41/51
Procure por:Troque por:
(\d{4})-(\d{2})-(\d{2})$3/$2/$1
2015-10-14
1999-12-31
14/10/201531/12/1999
7/25/2019 Aurelio Regex
42/51
7/25/2019 Aurelio Regex
43/51
Casar uma data: dd/mm/aaaa
../../....
\d{2}/\d{2}/\d{4}
[0123][0-9]/[01][0-9]/[12][0-9]{3}
(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}
((0[1-9]|[12][0-9])/02|(0[1-9]|[12][0-9]|30)/(0[469]|11)|(0[1-9]|[12][0-9]|3[01])/(0[13578]|1[02]))/[12][0-9]{3}
7/25/2019 Aurelio Regex
44/51
Expresso Regular
pode nosera melhor soluo
7/25/2019 Aurelio Regex
45/51
7/25/2019 Aurelio Regex
46/51
# Python
importdatetime
datetime.datetime.strptime(
"31/12/1999",
"%d/%m/%Y"
)
7/25/2019 Aurelio Regex
47/51
7/25/2019 Aurelio Regex
48/51
Validar e-mail com regex
.*@.*
[^@]+@[^@]+
[A-Za-z0-9_.-]+@[A-Za-z0-9_.]+
[A-Za-z0-9_.-]+@([A-Za-z0-9_]+\.)+[A-Za-z]{2,6}
[email protected] [email protected] [email protected] existe ningum l outro l
mailto:[email protected]:[email protected]7/25/2019 Aurelio Regex
49/51
7/25/2019 Aurelio Regex
50/51
Onde praticar?
http://regexpal.comhttp://regex101.com
7/25/2019 Aurelio Regex
51/51
$