Escolar Documentos
Profissional Documentos
Cultura Documentos
Expressões Regulares
● Conceitos básicos
● Alfabetos
● Palavras/Cadeias
● Linguagens
● O que é um alfabeto?
● Símbolo: é uma entidade abstrata que não precisa ser definida. Eles
devem ser ordenáveis. Portanto podem ser comparados quanto à
sua igualdade.
● a<b<c<…<z
● 0<1<2<…<9
Revisão dos Conceitos Básicos
Σ* = Σ0 U Σ1 U Σ2 U … U Σn
= { ε, a, b, aa, bb, aab, abb, aabb, bbaa, ... }
onde Σ0 = ε
●
Fechamento Positivo: Σ+ = Σ* - ε
Linguagens Formais
● Exemplo:
● O conjunto de cadeias ou palavras válidas para a língua portuguesa é
um subconjunto de {a, b, c, d, … z}+.
Linguagens Formais
●
L = { w ∈ Σ* | w sempre termina com a }
Se Σ={a,b}, então L = {a, aa, aaa, aba, aaaba, bba, ba, bbba, ... }
●
L = { w ∈ Σ* | |w| = 2 }
L = {2, 4, 6, 8}
● Linguagens Formais:
● São linguagens que podem ser representadas de maneira finita e
precisa, através de sistemas com sustentação matemática.
● Linguagens Regulares:
● Trata-se do conjunto de linguagens formais bastante simples e com
propriedades bem definidas.
Definição:
●
Seja um alfabeto Σ. As expressões regulares sobre esse alfabeto
denotam conjuntos (Linguagens) como segue:
●
∅ é uma expressão que denota o conjunto vazio.
●
ε é uma expressão que denota o conjunto {ε}
●
Para cada símbolo α do alfabeto Σ, α representa uma expressão regular
que gera o conjunto {α}.
● Se r e s são expressões regulares que denotam os conjuntos R e S
respectivamente
– (r ou s) equivale ao conjunto R U S
– rs equivale ao conjunto RS
– r* equivale ao conjunto R*
Operações de Expressões Regulares
● Fechamento Positivo é dado por M+. Uma string está em M+ se ela for
uma concatenação de uma ou mais strings de M.
●
Considere o alfabeto Σ={a, b, c}
● a = {a}
●
a* = {ε, a, aa, aaa, …}
● ab* = {a, ab, abb, abbb, ...}
●
(a | c)* = {ε, a, c, aa, ac, aac, cc, ccca, aaccc, …}
Exemplos
●
Conjunto de todas as cadeias sobre o alfabeto Σ={a, b, c} que
contenha somente um b.
● ( a | c ) * b ( a | c)* = {b, abc, abac, abaca, baaac, aaccbac, … }
– OBS: A mesma linguagem pode ser representada por muitas expressões regulares
diferentes.
Exemplos
●
Conjunto de todas as cadeias sobre o alfabeto Σ={a, b}
● ( a | b )*
● ( a* b* )* Por quê?
● ( a* b* )+
●
Conjunto de todas as cadeias sobre o alfabeto Σ={a, b, c}
● ( a | b | c )*
Exemplos