Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenDonnerstag, 17. April 2014 

Regulärer Ausdruck


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
Reguläre Ausdrücke (Abk. RegExp engl. regular expression ) bilden eine Familie von kompakten leistungsfähigen formalen Sprachen mit denen sich (Unter-)Mengen von Zeichenketten beschreiben lassen. Diese Sprachen werden von Texteditoren und Hilfsprogrammen (hauptsächlich unter Unix ) verwendet um bestimmte Muster zu suchen dann durch etwas anderes zu ersetzen oder Aktion auszuführen. Programme die reguläre Ausdrücke benutzen z.B. egrep sed und awk aber auch in Programmiersprachen Perl und Tcl oder Texteditoren wie Emacs und vi lassen sich reguläre Ausdrücke verwenden.

Reguläre Ausdrücke werden in der Theorie der formalen Sprachen untersucht. Eine formale Sprache ist durch Menge von Zeichenketten beschrieben. In der Theorie und klassifiziert man diese Mengen. Der Mathematiker Kleene benutzte eine Notation die er reguläre Mengen nannte. Ken Thompson nutzte diese Notation um qed (eine Vorgängerversion des Unix-Editors ed ) zu bauen und später das Werkzeug zu schreiben. Seither implementieren sehr viele Programme um reguläre Ausdrücke zu nutzen. Viele davon benutzen die regex -Bibliothek von Henry Spencer oder PCRE von Philip Hazel.

Mit regulären Ausdrücken kann man die Grammatik einer regulären Sprache beschreiben. Sie entspricht dem Typ 3 Grammatiken in der Chomsky-Hierarchie . Das bedeutet dass man damit die Morphologie einer natürlichen Sprache beschreiben kann.

Beschreibung

Eine häufige Anwendung regulärer Ausdrücke besteht spezielle Zeichenketten in einer Menge von Zeichenketten finden. Die im Folgenden angegebene Beschreibung ist (oft benutzte) Konvention um Konzepte wie Zeichenklasse Quantifizierung Verknüpfung und Zusammenfassen konkret zu realisieren. Hierbei wird ein Ausdruck aus den Zeichen des zugrunde liegenden in Kombination mit so genannten Metazeichen ("[" "]" "(" ")" "?" "+" "^" "$" "\") gebildet. Alle übrigen Zeichen Alphabets stehen für sich selbst.

Zeichenklassen erlauben es mehr als ein Zeichen einer bestimmten Position der Zeichenkette zuzulassen:

.
(d.h. ein Punkt) jedes beliebige Zeichen
[Aa]
entweder "A" oder "a"
[egh]
eines der Zeichen "e" "g" oder
[0-6]
eine Ziffer von "0" bis "6"
[A-Za-z0-9]
ein beliebiger Buchstabe oder eine beliebige
[^a]
ein beliebiges Zeichen außer "a"

Quantifizierer erlauben es den vorherigen Ausdruck in Vielfachheit in der Zeichenkette zuzulassen:

?
der voranstehenden Ausdruck ist optional er einmal vorkommen muss es aber nicht
+
der voranstehenden Ausdruck muss mindestens einmal darf aber auch mehrfach vorkommen
*
der voranstehenden Ausdruck darf beliebig oft keinmal) vorkommen
Beispielsweise erlaubt "a+" ein "a" oder "aa" oder auch "aaaa" etc. Dagegen erlaubt ein "a" "b" "aa" "baab" etc.

Ausdrücke lassen sich mit runden Klammern und ")" zusammenfassen : Etwa erlaubt "(abc)+" ein "abc" oder "abcabc" etc.

Man kann alternative Ausdrücke durch Verknüpfung mit dem "|"-Symbol zulassen:

(ABC)|(abc)
"ABC" oder "abc" aber nicht "Abc".

Um die oft auf Textdateien bezogenen auf dem Computer zu unterstützen werden in Regel die folgenden Sonderzeichen definiert:

^
steht für den Zeilenanfang
$
steht für das Zeilenende

Letztendlich kann jedes der Metazeichen durch das "\"-Symbol aufgehoben werden. Beispielsweise der Ausdruck "(A\*)+" die Zeichenketten "A*" "A*A*" zu.

Literatur

  • Jeffrey Friedl: Reguläre Ausdrücke O'Reilly 2003 ISBN 3-897213-49-4
  • Tony Stubblebine: Regular Expression Pocket Reference O'Reilly ISBN 059600415X

Weblinks



Bücher zum Thema Regulärer Ausdruck

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/Regul%E4rer_Ausdruck.html">Regulärer Ausdruck </a>