Notice: Undefined index: string in /var/www/stefan/howtux.de/htdocs/article.php on line 49

Notice: Undefined index: settings in /var/www/stefan/howtux.de/htdocs/article.php on line 61
Home / Filterprogramme und Reguläre Ausdrücke (sed und grep) / Aufbau regulärer Ausdrücke

Aufbau regulärer Ausdrücke

Kategorie: Filterprogramme und Reguläre Ausdrücke (sed und grep)Erstellt: 02.10.2007 - 23:58 Geändert: 09.11.2007 - 10:03
Autor: Stefan Abu Salah
0Reguläre Ausdrücke (regular expressions) dienen der Beschreibung von (Unter-)Mengen von Zeichenketten mit Hilfe syntaktischer Regeln. Sie finden vor allem in der Softwareentwicklung Verwendung. Eine häufige Anwendung regulärer Ausdrücke besteht darin, spezielle Zeichenketten in einer Menge von Zeichenketten zu finden. Die im Folgenden angegebene Beschreibung ist eine Konvention, um Konzepte wie Zeichenklasse, Quantifizierung, Verknüpfung und Zusammenfassen konkret zu realisieren. Hierbei wird ein regulärer Ausdruck aus den Zeichen des zugrunde liegenden Alphabets in Kombination mit sogenannten Metazeichen ([, ], (, ), {, }, |, ?, +, *, ^, $, , .) gebildet. Alle übrigen Zeichen des Alphabets stehen für sich selbst. (wikipedia)
Beispiele:

Die Datei "schausteller" enthält einige Namen,Postleitzahlen,
Orte und Telefonnummern von Schaustellern. Die Einträge sind durch
Blanks (" ") voneinander getrennt. Der Veranschaulichung soll zunächst die
Ausgabe der letzten fünf Einträge dieser Datei dienen:

stefan@troubadix/home/stefan$ tail -n 5 schausteller
Walther Lothar 09125 Chemnitz 0374545457
Wambold Werner 35579 Wetzlar 01745454567
Walther Philipp 09125 Chemnitz 01745454539
Zorn Michael 52249 Eschweiler 024045454539
Zschaler Hubert 28215 Bremen 01745454510

stefan@troubadix/home/stefan$ grep Bochum schausteller
Leidgen Ludwig 45665 Bochum 01745451459
Leidgen Tanja-Rabea 44894 Bochum 01645454580
Siewert Frank 44894 Bochum 01745245459

stefan@troubadix/home/stefan$ grep "Sch[üöä]" schausteller
Schütz Ausschankbetriebe 52351 Düren 01745454520
Schüller Frank 55545 BadKreuznach 017637254520
Schörn Joachim 47441 Moers 01745454520
Schälm David 52511 Geilenkirchen 01745454520

Kombinationen der folgenden Ausdrücke erlauben ein fast beliebiges Filtern von Zeichenketten.


Beispiele für Filterausdrücke:
abc
Meint genau den String "abc"

[abc]
Meint eines der Zeichen a, b oder c

[aA]bc
Meint "abc" und "Abc"

[a-z]
Die Zeichen a bis z

[a-zA-Z0-9]bc
Meint alle kleinen und großen Buchstaben und die Ziffern 0 bis 9 gefolgt von "bc"

[^a-z]
Das "^"-Zeichen negiert die Angabe

[a-z]*
Das "*"-Zeichen steht für ein beliebig oftes Vorkommen der angegebenen Zeichen

H[u]*hn
Filtert sowohl "Hhn", "Huhn", "Huuhn" u.s.w. heraus

[a-z]{3}
Der in den eckigen Klammern angegebene Ausdruck muss genau dreimal hintereinander vorkommen

[a-z]{1,3}
Der in den eckigen Klammern angegebene Ausdruck muss ein bis dreimal hintereinander vorkommen

[a-z]+
Das "+"-Zeichen ist fast gleichwertig zum "*" mit der Ausnahme das die hiervor angegebenen Zeichen mindestens einmal vorkommen müssen.

H[u]+hn
Filtert sowohl "Huhn", "Huuhn", "Huuuhn" u.s.w. heraus

$
Steht für das Zeilenende

^
Steht für den Zeilenanfang

.
Der Punkt steht für ein beliebiges Zeichen


Reguläre Ausdrücke müssen in Anführungszeichen gesetzt werden, da ansonsten einige Zeichen von der Shell anders interpretiert werden. Möchten, oder können Sie keine Anführungszeichen verwenden, so müssen sie den folgenden Zeichen einen Backslash "" voranstellen: [, ], (, ), {, }, |, ?, +, *, ^, $, , .


Beispiele:

stefan@troubadix/home/stefan$ grep "[Vv]iersen" schausteller
Tusch Eduard 41748 Viersen 01645450455
Viersen Bernhard 31275 Lehrte 01745456454

stefan@troubadix/home/stefan$ grep "^[Vv]iersen" schausteller
Viersen Bernhard 31275 Lehrte 01745456454

stefan@troubadix/home/stefan$ grep 40468 schausteller
Seilerweber Michael 47441 Moers 01775440468
Sikohett GdbR-Imbiss 66482 Zweibrücken 01765440468
Simon Andreas 65558 Isselbach 06434540468
Torgau Rudolf 40468 Düsseldorf 01745446468

stefan@troubadix/home/stefan$ grep "40468$" schausteller
Seilerweber Michael 47441 Moers 01775440468
Sikohett GdbR-Imbiss 66482 Zweibrücken 01765440468
Simon Andreas 65558 Isselbach 06434540468

stefan@troubadix/home/stefan$ grep "[0-9]..[0-9]68$" schausteller
Normann Herbert 47533 Kleve 0282454568
Rosskopf Klinkerfuss 55545 Kreuznach 01745045068
Seilerweber Michael 47441 Moers 01775440468
Sikohett GdbR-Imbiss 66482 Zweibrücken 01765440468
Simon Andreas 65558 Isselbach 06434540468
Torgau Rudolf 40468 Düsseldorf 01745446468


Notice: Undefined variable: urli in /var/www/stefan/howtux.de/htdocs/classes.php on line 240
Bookmark auf del.icio.usBookmark auf Mister WongBookmark auf BlinklistBookmark auf GoogleBookmark auf LinkarenaBookmark auf YiggBookmark auf FolkdBookmark auf Yahoo
Home / Filterprogramme und Reguläre Ausdrücke (sed und grep) / Aufbau regulärer Ausdrücke
simplum