RE |
regulärer Ausdruck
regular expression
|
Legende |
1 ist immer der Startzustand
2 ist der Endzustand
das rote epsilon (e)
steht für die leere Zeichenfolge, also für spontane Übergänge
|
leere Zeichenfolge
|
|
|
|
| |
ein Zeichen: a
|
|
|
|
| |
eine Sequenz: abc
|
|
|
|
| |
eine Auswahl von Zeichen: a|b|c
|
|
|
|
|
Hier steht die eine Kante mit dem Zeichenintervall
[a-c] als Marke abkürzend für 3 Kanten
mit den Marken a, b
und c.
|
| |
eine allgemeine Auswahl: |a|bb
|
|
|
|
| |
eine Wiederholung: a*
|
Sonderfall einer Auswahl (|a+)
|
|
|
| |
eine Wiederholung: a+
|
|
|
|
| |
eine Option: a?
|
Sonderfall einer Auswahl (a|)
|
|
|
| |
Beispiel:
(aa)*|(aaa)*
|
alle Folgen von 2 oder 3 a's:
{ ε, aa, aaa, aaaa, aaaaaa, aaaaaaaa, aaaaaaaaa, ...}
|
|
|
| |
Beispiel:
|(aa)+|(aaa)+
|
die gleiche reguläre Menge noch einmal
|
|
|
| |
Beispiel:
c*a(a|c)*b(a|b|c)*
|
Alphabet A = {a, b, c}
alle Wörter, in denen das 1. a vor dem 1.b steht
|
|
| |
Beispiel:
((b|c)*a(b|c)*a)*(b|c)*
|
Alphabet A = {a, b, c}
alle Wörter mit gerader Anzahl von a's
|
|
| |
Beispiel:
if|[a-z][a-z0-9]*
|
if oder identifier
|
|
| |
Beispiel:
if|then|else|
[a-z][a-z0-9]*
|
if, then, else oder identifier
|
|
| |
Beispiel:
if|then|else| begin|end| while|do|for|to| [a-z][a-z0-9]* |[0-9]+
|
Schlüsselwörter, Bezeichner und Zahlen
|
|