09.04.2014 Aufrufe

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

7.2 Reguläre Ausdrücke: Extras 105<br />

7.2 Reguläre Ausdrücke: Extras<br />

<strong>Die</strong> Beschreibung aus dem vorigen Abschnitt gilt für praktisch alle <strong>Linux</strong>-Programme,<br />

die reguläre Ausdrücke verarbeiten. Diverse Programme unterstützen<br />

aber auch verschiedene Erweiterungen, die entweder Schreibvereinfachungen Erweiterungen<br />

bieten oder tatsächlich zusätzliche Dinge erlauben. <strong>Die</strong> »Krone der Schöpfung«<br />

markieren hier die modernen Skriptsprachen wie Tcl, Perl oder Python, deren<br />

Implementierungen inzwischen weit über das hinausgehen, was reguläre Ausdrücke<br />

im Sinne der theoretischen Informatik können.<br />

Einige gängige Erweiterungen sind:<br />

Wortklammern <strong>Die</strong> Sequenz »\« am Ende eines Worts (da, wo ein Buchstabe von einem Nichtbuchstaben<br />

gefolgt wird).<br />

Gruppierung Runde Klammern (»(…)«) erlauben es, Aneinanderreihungen von<br />

regulären Ausdrücken zu wiederholen: »a(bc)*« passt auf ein »a« gefolgt<br />

von beliebig vielen Wiederholungen von »bc«, im Gegensatz zu »abc*«, das<br />

auf »ab« gefolgt von beliebig vielen Wiederholungen von »c« passt.<br />

Alternative Mit dem vertikalen Balken (»|«) können Sie eine Auswahl zwischen<br />

mehreren regulären Ausdrücken treffen: Der Ausdruck »Affen(brot|schwanz|kletter)baum«<br />

passt genau auf »Affenbrotbaum« 2 , »Affenschwanzbaum« 3 oder »Affenkletterbaum«.<br />

Optionales Das Fragezeichen (»?«) macht den vorstehenden regulären Ausdruck<br />

optional, das heißt, er tritt entweder einmal auf oder gar nicht. »Boot(smann)?«<br />

passt auf »Boot« oder »Bootsmann«.<br />

Min<strong>des</strong>tens einmal Vorhandenes Das Pluszeichen (»+«) entspricht dem Wiederholungsoperator<br />

»*«, bis darauf, dass der vorstehende Ausdruck min<strong>des</strong>tens<br />

einmal auftreten muss, also nicht ganz entfallen darf.<br />

Bestimmte Anzahl von Wiederholungen Sie können in geschweiften Klammern<br />

eine Min<strong>des</strong>t- und eine Maximalanzahl von Wiederholungen angegeben<br />

werden: »ab{2,4}« passt auf »abb«, »abbb« und »abbbb«, aber nicht auf »ab«<br />

oder »abbbbb«. Sie können sowohl die Min<strong>des</strong>t- als auch die Maximalanzahl<br />

weglassen; fehlt die Min<strong>des</strong>tanzahl, wird 0, fehlt die Maximalanzahl,<br />

so wird »Unendlich« angenommen.<br />

Rückbezug Mit einem Ausdruck der Form »\n« können Sie eine Wiederholung<br />

<strong>des</strong>jenigen Teils in der Eingabe verlangen, der auf den Klammerausdruck<br />

Nr. n im regulären Ausdruck gepasst hat. »(ab)\1« zum Beispiel passt auf<br />

»abab«, und wenn bei der Bearbeitung von »(ab*a)x\1« die Klammer auf abba<br />

gepasst hat, dann passt der gesamte Ausdruck auf abbaxabba (und nichts<br />

anderes). Weitere Details finden Sie in der Dokumentation zu GNU grep.<br />

»Bescheidene« Vorgehensweise <strong>Die</strong> Operatoren »*«, »+« und »?« sind normalerweise<br />

»gierig«, das heißt, sie versuchen auf so viel der Eingabe zu passen<br />

wie möglich: »^a.*a« bezogen auf die Eingabe »abacada« passt auf »abacada«,<br />

nicht »aba« oder »abaca«. Es gibt aber entsprechende »bescheidene« Versionen<br />

»*?«, »+?« und »??«, die auf so wenig der Eingabe passen wie möglich. In<br />

unserem Beispiel würde »^a.*?a« auf »aba« passen. Auch die geschweiften<br />

Klammern haben möglicherweise eine bescheidene Version.<br />

Nicht je<strong>des</strong> Programm unterstützt jede Erweiterung. Tabelle 7.1 zeigt eine<br />

Übersicht der wichtigsten Programme. Insbesondere Emacs, Perl und Tcl unterstützen<br />

noch jede Menge hier nicht diskutierte Erweiterungen.<br />

2 Adansonia digitata<br />

3 Volkstümlicher Name für die Araukarie (Araucaria araucana)<br />

Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!