Regulärer Ausdruck
Aus KGS-Wiki
Ein regulärer Ausdruck ist eine Möglichkeit, Wörter formaler Sprachen zu beschreiben. Anders als eine formale Grammatik beschreibt ein regulärer Ausdruck dabei nur die Syntax eines Wortes und kann nichts über dessen Semantik aussagen. Mit regulären Ausdrücken können nicht alle Sprachen beschrieben werden, die mit einer formalen Grammatik beschrieben werden können.
Der wichtigste Unterschied zu einer formalen Grammatik ist: eine formale Grammatik gibt Regeln zum Erzeugen eines Wortes an, ein regulärer Ausdruck dient nur der Überprüfung. Ob ein Wort einem regulären Ausdruck entspricht, kann dabei wesentlich schneller überprüft werden, als ob das Wort den Regeln einer Grammatik entspricht.
Syntaxelemente
Schreibweise | Bedeutung | Beispielwörter |
(abc|def)
|
abc oder def
|
abc , def
|
[abcde]
|
a , b , c , d oder e
|
a , b , e
|
[0-9]
|
eine Ziffer von 0 bis 9
|
1 , 5 , 8
|
[k-r]
|
ein Buchstabe von k bis r
|
l , o , q
|
[^abcde]
|
weder a , b , c , d noch e
|
g , 6 , !
|
a*
|
beliebig viele a (auch keines)
|
aaaaaa , , a
|
a+
|
beliebig viele a (mindestens eines)
|
a , aaa , aaaaaaa
|
abc*
|
ab und dann beliebig viele c
|
ab , abccc , abccccc
|
(abc)*
|
beliebig viele abc
|
abc , abcabcabc ,
|
def?
|
de und dann ein f oder nicht
|
de , def
|
[a-z]{5}
|
fünf Kleinbuchstaben | hallo , alles , roger
|
a{4,7}
|
mindestens 4 und höchstens 7 a
|
aaaa , aaaaa , aaaaaaa
|
^abc
|
abc am Anfang der Zeile
|
|
def$
|
def am Ende der Zeile
|
|
\? , \. , \* , \[ , \] usw.
|
Diese Zeichen haben eine Funktion. Um nach den Zeichen selbst suchen zu können, muss der \ davorgesetzt werden.
|
|
.
|
ein beliebiges Zeichen | z , 7 , §
|
Beispiele
[A-ZÄÖÜ]{1,3}-[A-Z]{1,2} [0-9]{1,4}[HE]?
für Autokennzeichen wieNMS-KG 123
oderPLÖ-RX 42E
numbers\[[0-9]+\] = [0-9]*;
für Wertzuweisungen für Einträge in der Listenumbers