Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12...
Transcript of Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12...
![Page 1: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/1.jpg)
1
Expressões regulares: Uma introdução
Prof. Jesús P. [email protected]
30/03/2016
III Semana do CMCC/UFABC
![Page 2: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/2.jpg)
2
Apresentação
Professor:Jesús P. Mena-Chalco (CMCC)
Formação: - Engenheiro da Computação.- Mestre e doutor em Ciência da Computação.Instituto de Matemática e Estatística da USP.
Sala 517-A, torre 2, 5º Andar.
Áreas de pesquisa:- Cientometria/Bibliometria, Reconhecimento de padrões.
![Page 3: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/3.jpg)
3
Imagine:Você tem UM problema e descobre que precisa usar expressões regulares…
Parabéns! Agora você tem DOIS problemas!
![Page 4: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/4.jpg)
4
Expressões regulares
Regular expressionsRegexregexp
São cadeias de texto especiais utilizadas para busca/identificação de “padrões” textuais.
*.txtMaria* → Maria, Mariana, Marianna, Mariano, Mariane
![Page 6: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/6.jpg)
6
![Page 7: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/7.jpg)
7
![Page 8: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/8.jpg)
8
wget http://professor.ufabc.edu.br/~jesus.mena/courses/regex/dados.zipunzip dados.zip
![Page 9: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/9.jpg)
9
Localizando textos
![Page 10: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/10.jpg)
10
Expressões regulares
Problema:Quais disciplinas o “Paulo Ricardo” está cursando?
![Page 11: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/11.jpg)
11
Problema 1
Quais disciplinas o “Paulo Ricardo” está cursando?
![Page 12: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/12.jpg)
12
Duas ferramentas: grep e egrep
grep (Global Regular Expressions Print):Programa que lê um arquivo (ou conjunto de arquivos), linha a linha, e imprime as linhas que contenham um padrão.
Padrão: é uma expressão que especifica um conjunto de cadeias interpretando carateres como meta-carateres.
egrep (Extended grep)
![Page 13: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/13.jpg)
14
egrep n "Paulo Ricardo" alunos.txt
egrep i "Paulo Ricardo" alunos.txt
egrep v "Paulo Ricardo" alunos.txt
Alguns parâmetros especiais
![Page 14: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/14.jpg)
16
Problema 2
Quais disciplinas o “Lucas Sousa” está cursando?
![Page 15: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/15.jpg)
17
Problema 2
Quais disciplinas o “Lucas Sousa” está cursando?
egrep "Lucas .* Sousa" alunos.txt
![Page 16: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/16.jpg)
18
Problema 2
Quais disciplinas o “Lucas Sousa” está cursando?
egrep "Lucas .* Sousa" alunos.txt
![Page 17: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/17.jpg)
20
Problema 2
Quais disciplinas o “Lucas Sousa” está cursando?Quais disciplinas o “Lucas Souza” está cursando?
egrep "Lucas .* Sou[s|z]a" alunos.txt
![Page 18: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/18.jpg)
23
Problema 2
Quais disciplinas o “Lucas Sousa” está cursando?Quais disciplinas o “Lucas Souza” está cursando?
egrep "Lucas .* Sou[s|z]a " alunos.txt
2 espaços em branco
![Page 19: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/19.jpg)
24
Problema 3
Quais os alunos que estão cursando a disciplina de Processamento da Informação C1, C2, C3, Diuno em Santo André?
egrep "Processamento da Informação [C1|C2|C3]-Diurno" alunos.txt
![Page 20: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/20.jpg)
25
Problema 3
Quais os alunos que estão cursando a disciplina de Processamento da Informação C1, C2, C3, Diuno em Santo André?
egrep "Processamento da Informação [C1|C2|C3]-Diurno" alunos.txt
egrep "Processamento da Informação C[1|2|3]-Diurno" alunos.txt
egrep "Processamento da Informação (C1|C2|C3)-Diurno" alunos.txt
![Page 21: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/21.jpg)
27
Problema 3
Quais os alunos que estão cursando a disciplina de Processamento da Informação C1, C2, C3, Diuno em Santo André?
egrep "Processamento da Informação (C1|C2|C3)-Diurno .*André" alunos.txt
egrep "Processamento da Informação (C1|C2|C3)-Diurno .*André" alunos.txt | wc
![Page 22: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/22.jpg)
28
Problema 4
Quais os alunos ingressantes em 2015?
egrep "15" alunos.txt
![Page 23: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/23.jpg)
29
Problema 4
Quais os alunos ingressantes em 2015?
egrep "15" alunos.txt
egrep "[0-9][0-9][0-9][0-9][0-9][0-9]15" alunos.txt
egrep "[0-9]{6}15" alunos.txt
![Page 24: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/24.jpg)
31
Problema 5
Quantos os alunos ingressantes em 2015 e matriculados em 2016?
Quantos os alunos ingressantes em 2006 e matriculados em 2016?
egrep -o "[0-9]{6}15" alunos.txt
egrep -o "[0-9]{6}15" alunos.txt | uniq | wcegrep -o "[0-9]{6}06" alunos.txt | uniq | wc
egrep -o "[0-9]{6}15" alunos.txt | uniq > alunos2015.txt
![Page 25: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/25.jpg)
32
Problema 6
Quantos alunos estão matriculados em FUV e FVV?
![Page 26: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/26.jpg)
33
Problema 6
Quantos alunos estão matriculados em FUV e FVV?
egrep "Funções de Uma Variável" alunos.txt | egrep -o "[0-9]{8}" > alunosFUV.txt
egrep "Funções de Várias Variáveis" alunos.txt | egrep -o "[0-9]{8}" > alunosFVV.txt
cat alunosFUV.txt alunosFVV.txt | sort | uniq -d
cat alunosFUV.txt alunosFVV.txt | sort | uniq -d | wc -l 74
![Page 27: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/27.jpg)
34
Outros problemas
egrep "José" jose.txt egrep i "José" jose.txt egrep i "José" jose.txt | wc l
No poema, “Agora José”, quantas vezes é feita a refência José?
Na letra da música, “Roda viva”, quantas vezes é feita a refência Roda?
Rodamoinho ão deve ser considerado:
![Page 28: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/28.jpg)
35
Outros problemas
egrep "José" jose.txt egrep i "José" jose.txt egrep i "José" jose.txt | wc l
No poema, “Agora José”, quantas vezes é feita a refência José?
Na letra da música, “Roda viva”, quantas vezes é feita a refência Roda?
Rodamoinho ão deve ser considerado:
egrep i "roda\b" rodaviva.txt
![Page 29: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/29.jpg)
36
Localizando e substituindo textos
![Page 30: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/30.jpg)
37
![Page 31: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/31.jpg)
38
![Page 32: Expressões regulares: Uma introduçãoprofessor.ufabc.edu.br/~jesus.mena/courses/regex/mini...12 Duas ferramentas: grep e egrep grep (Global Regular Expressions Print): Programa que](https://reader033.fdocumentos.tips/reader033/viewer/2022041907/5e645f63326936494c0f2058/html5/thumbnails/32.jpg)
39