Reguläre Ausdrücke - Tutorial Teil 8: Anwendung und Beispiele

 

0 Kommentare | Kommentar schreiben | Bewerten | Artikel melden

 

Typ

Tutorial für Anfänger

Kategorie

Tools & Nützliches

Sprache

Deutsch

Autor

Stefan Trost Media

Eintrag

13.07.2011

Bewertungen

112

Views

4535
 
 


Über den Autor

Stefan Trost ist Entwickler von Software und Weblösungen und kümmert sich auch gerne um Ihre individuellen Softwarewünsche oder Webauftritte. Kontakt

Profil von Stefan Trost Media
Artikel von Stefan Trost Media

Dies ist der vorerst letzte Teil des Tutorials über reguläre Ausdrücke. Wir möchten Ihnen hier einige Anwendungsmöglichkeiten präsentieren, die Sie mit regulären Ausdrücken haben. Sollten Sie noch weitere Fragen haben oder etwas unklar geblieben sein, können Sie dies gerne in den Kommentaren schreiben. Ich kann das Tutorial dann gegebenenfalls entsprechend erweitern. Das Tutorial besteht bislang aus den folgenden Teilen:

Teil 1: Einführung und Grundlagen | Teil 2: Einfache Zeichenketten, Wiederholungen und Gruppieren | Teil 3: Metazeichen | Teil 4: Zeichenauswahl und alternative Zeichen | Teil 5: Zeichengruppen und Klassen | Teil 6: Wiederverwendung und Rückwärtsreferenzen | Teil 7: Modifikatoren | Teil 8: Anwendung und Beispiele

Wichtiger Hinweis

Um die Beispiele ausprobieren zu können und um selber reguläre Ausdrücke zu testen, können Sie die Software Text Konverter in der Basic Version benutzen. Im ersten Teil des Tutorials ist erklärt, wie dies funktioniert.

Eine Internetadresse

Regulärerer Ausdruck:   [a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}

Zunächst wollen wir uns darum kümmern, mit einem regulären Ausdruck eine Internetadresse zu finden. Eine Internetadresse besteht aus einem beliebig langen Namen, der mit einem Punkt von der Endung separiert wird. Die Endung kann zwei bis vier Zeichen haben und wir gehen davon aus, dass in einer Internetadresse die Zeichen a bis z in Ihrer klein oder groß geschriebenen Form auftreten können. Außerdem wollen wir den Punt und den Bindestrich zulassen. In dem Kasten sehen Sie, wie das als regulärer Ausdruck aussieht

Zuerst haben wir eine Gruppe von Zeichen mit den eckigen Klammern eingefasst, die für den Namen steht. Da Punkt und Bindestrich Metazeichen sind, schreiben wir diese an das Ende der Gruppe, womit sie als solche Zeichen erkannt werden. Mit dem + hinter der Gruppe sagen wir, dass sich Zeichen aus dieser Gruppe beliebig oft wiederholen dürfen, aber mindestens ein Zeichen vorkommen muss. Danach schreiben wir "\.". Das ist der Punkt zwischen Domainnamen und Domainendung, den wir mit \ escapen müssen, damit er nicht als Metazeichen erkannt wird. [a-zA-Z] ist unsere Endung, die nur aus Buchstaben bestehen kann. Endungen können zwischen 2 (de) und 4 (info oder mobi) Zeichen lang sein. Also setzen wir {2,4} hinter die Endung. Schon ist unser regulärer Ausdruck fertig, der eine beliebige Domain findet (zumindest wenn sie keine Umlaute enthält, die man natürlich auch noch ergänzen könnte).

Eine E-Mail Adresse

\b[a-zA-Z0-9._+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b

Als nächstes wollen wir eine E-Mail Adresse mit einem regulären Ausdruck suchen. Sie sehen das Beispiel in dem Kasten. Eine E-Mail Adresse kann aus Buchstaben, Zahlen, Punkten, Unterstrichen, Plus-Zeichen und Bindestrichen bestehen. Dahinter folgt ein @ und eine Internetadresse. Die Internetadresse haben wir schon aus dem ersten Beispiel, jetzt müssen wir nur noch innerhalb von [ und ] die Gruppe von Zeichen definieren, die eine Internetadresse haben kann. Die Metazeichen schreiben wir wieder an das Ende und mit dem Plus hinter der eckigen Klammer sagen wir, dass sich die Zeichen aus dieser Gruppe beliebig wiederholen dürfen. Das @ ist kein Metazeichen und kann einfach so in unserem regulären Ausdruck verwendet werden. Wenn wir möchten, dass die E-Mail Adresse ein ganzes Wort ist, schreiben wir \b hinter und vor den kompletten Ausdruck. \b steht für die Position eines Wortanfangs beziehungsweise Wortendes.

E-Mail Adresse verlinken

Suchen nach:   (\b[a-zA-Z0-9._+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b)

Ersetzen mit:  <a href="mailto:$1>$1</a>

Nun wollen wir jede E-Mail Adresse, die wir in einer Datei finden, verlinken. Zunächst suchen wir natürlich nach unserem regulären Ausdruck, den wir oben schon definiert haben. Da wir die gefundene E-Mail Adresse wiederverwenden möchten, müssen wir eine Klammer um den Ausdruck schreiben. Damit lässt sich der gesamte Ausdruck mit $1, da es sich um die erste Klammer handelt wieder einfügen.

Wir wollen die Adresse aber nicht nur einfach einfügen, sondern etwas drum herum schreiben. Und das ist unser Link <a href="mailto: ... > ... </a>. An die Stelle mit den Punkten soll die Adresse eingefügt werden, also schreiben wir dort hinein unser $1, dass uns ja die gefundene E-Mail Adresse liefert.

Wenn wir nun diesen Ausdruck anwenden, wird jede Mail-Adresse aus dem Text gefunden und anschließend mit seiner eigenen Verlinkung wieder eingefügt. Und schon haben wir es geschafft ohne große Probleme mit einem regulären Ausdruck Arbeit einzusparen.

Noch Fragen?

Reguläre Ausdrücke sind eine komplexe Sache und sind nicht einfach zu verstehen, wenn es ans Eingemachte geht. Wenn Sie noch Fragen haben sollten, können Sie diese Gerne in den Kommentaren stellen. Wenn Sie Hilfe bei konkreten regulären Ausdrücken brauchen oder ich Ihnen einen regulären Ausdruck für ein spezifisches Problem erstellen soll, kann ich das gerne für eine Spende tun. Sprechen Sie mich an.

 

© Stefan Trost - Die Verwendung dieses Tutorials, auch in Auszügen, ist nur nach vorheriger Genehmigung von Stefan Trost erlaubt. Sie können das Tutorial aber gerne verlinken.

 
  
 

Kommentare

Sind Sie der selben Meinung wie der Autor oder wollen Sie etwas ergänzen? Hier können Sie einen Kommentar hinterlassen.

Kommentar schreiben

Sie können zu diesem Artikel einen anonymen Kommentar hinterlassen. Möchten Sie unter Ihrem Namen schreiben, loggen Sie sich ein oder registrieren Sie sich.



Bisherige Kommentare

Zu diesem Artikel wurden bislang noch keine Kommentare abgegeben.