Regulární výrazy zavedl americký matematik Stephen Cole Kleene.
VĚTA: Libovolný jazyk je regulární, právě když je přijímaný konečným automatem.
Regulární výraz V nad abecedou Σ je definován jako:
- ∅, ε, a jsou regulární výrazy pro všechna a ∈ Σ
- Jsou-li x, y regulární výrazy nad Σ, pak:
- (x + y) (sjednocení, alternativa),
- (x.y) (zřetězení) a
- (x)* (iterace)
Hodnota h(x) regulární výrazu x je definována jako:
- h(∅) = ∅, h(ε) = ε, h(a) = a,
-
h(x+y) = h(x)∪h(y),
h(x.y) = h(x).h(y),
h(x*) = (h(x))*.
Regulární výrazy jsou identické (značíme x ≡ y), jestliže x a y jsou uplně stejné řetězce symbolů.
Úprava regulárních jazyků
-
∅* = ε
nultá iterace jakéhokoliv jazyka je ε -
x* + x = x*
iterace je obsažena v x* -
(x*)* = x*
točíme se závorce nebo uvnitř -
(x + y)* = (x*y*)*
výsledek je libovolný počet x nebo y. -
x*y = y + x*xy
-
x*y = y + xx*y
-
x*y = x*(y + xy + x2y + ... + xn-1y)
-
xx* = x*, pokud ε ∈ h(x)
-
(xy)*x = x(yx)*
-
(x + y)*x = x(yx)*