Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

Einstieg in Reguläre Ausdrücke
Einstieg in Reguläre Ausdrücke
Einstieg in Reguläre Ausdrücke
Ebook335 pages5 hours

Einstieg in Reguläre Ausdrücke

Rating: 0 out of 5 stars

()

Read preview

About this ebook

Wenn Sie ein Programmierer sind, der mit regulären Ausdrücken noch nicht vertraut ist, finden Sie in diesem Buch einen sehr guten Einstieg. Schritt für Schritt lernen Sie die Grundlagen anhand vieler Beispiele. Sie erfahren, wie Sie Text finden, extrahieren und umwandeln, indem Sie bestimmte Wörter, Zeichen oder Muster suchen.
Reguläre Ausdrücke sind ein wichtiges Werkzeug für jeden Programmierers. Sie stehen in verschiedensten Unix-Tools und in Programmiersprachen wie Perl, Java, JavaScript und C# zur Verfügung. Haben Sie dieses Buch durchgearbeitet, werden Sie die wichtigsten Elemente regulärer Ausdrücke kennen und verstehen, wie Sie mit ihnen richtig Zeit sparen können.
LanguageDeutsch
Release dateDec 17, 2012
ISBN9783868999426
Einstieg in Reguläre Ausdrücke
Author

Michael Fitzgerald

Michael Fitzgerald is a freelance writer and trainer specializing in XML and related technologies. He is the author of Building B2B Applications with XML and XSL Essentials, both published by John Wiley & Sons, and has published several articles for XML.com on the O'Reilly Network.

Related to Einstieg in Reguläre Ausdrücke

Related ebooks

Software Development & Engineering For You

View More

Related articles

Reviews for Einstieg in Reguläre Ausdrücke

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    Einstieg in Reguläre Ausdrücke - Michael Fitzgerald

    Einstieg in Reguläre Ausdrücke

    Michael Fitzgerald

    Thomas Demmig

    Inhalt

    Vorwort

    Wer dieses Buch lesen sollte

    Was Sie für dieses Buch benötigen

    Typographische Konventionen

    Danksagung

    1. Was ist ein regulärer Ausdruck?

    Ein Anfang mit Regexpal

    Eine nordamerikanische Telefonnummer finden

    Ziffern mit einer Zeichenklasse finden

    Ein Zeichenkürzel verwenden

    Beliebige Zeichen finden

    Gruppen und Rückwärtsreferenzen

    Quantoren einsetzen

    Einfassende Literale

    Eine Beispielanwendung

    Was Sie in Kapitel 1 gelernt haben

    Technische Hinweise

    2. Einfache Muster finden

    Stringliterale finden

    Ziffern finden

    Etwas anderes als Ziffern finden

    Wort- und Nicht-Wortzeichen finden

    Whitespace finden

    Beliebige Zeichen finden – Zweite Runde

    Text mit Markup versehen

    Text mit sed mit Markup versehen

    Markup mit Perl einfügen

    Was Sie in Kapitel 2 gelernt haben

    Technische Hinweise

    3. Grenzen

    Anfang und Ende einer Zeile

    Wort- und Nicht-Wortgrenzen

    Andere Anker

    Eine Gruppe von Zeichen als Literale markieren

    Tags hinzufügen

    Tags mit sed hinzufügen

    Tags mit Perl hinzufügen

    Was Sie in Kapitel 3 gelernt haben

    Technische Hinweise

    4. Alternation, Gruppen und Rückwärtsverweise

    Alternation

    Untermuster

    Einfangende Gruppen und Rückwärtsverweise

    Benannte Gruppen

    Nicht-einfangende Gruppen

    Atomare Gruppen

    Was Sie in Kapitel 4 gelernt haben

    Technische Hinweise

    5. Zeichenklassen

    Negierte Zeichenklassen

    Vereinigung und Differenz

    POSIX-Zeichenklassen

    Was Sie in Kapitel 5 gelernt haben

    Technische Hinweise

    6. Unicode- und andere Zeichen finden

    Ein Unicode-Zeichen finden

    Einsatz von vim

    Zeichen mit Oktalzahlen finden

    Eigenschaften von Unicodezeichen finden

    Steuerzeichen finden

    Was Sie in Kapitel 6 gelernt haben

    Technische Hinweise

    7. Quantoren

    Gierig, genügsam und possessiv

    Mit *, + und ? finden

    Eine bestimmte Anzahl finden

    Genügsame Quantoren

    Possessive Quantoren

    Was Sie in Kapitel 7 gelernt haben

    Technische Hinweise

    8. Lookarounds

    Positive Lookaheads

    Negative Lookaheads

    Positive Lookbehinds

    Negative Lookbehinds

    Was Sie in Kapitel 8 gelernt haben

    Technische Hinweise

    9. Ein Dokument mit HTML-Markup versehen

    Tags finden

    Reinen Text mit sed umformen

    Mit sed ersetzen

    Römische Zahlen mit sed verarbeiten

    Einen bestimmten Absatz mit sed verarbeiten

    Die Zeilen des Gedichts mit sed verarbeiten

    Tags anfügen

    Eine Befehlsdatei bei sed einsetzen

    Reinen Text mit Perl umwandeln

    Römische Zahlen mit Perl verarbeiten

    Einen bestimmten Absatz mit Perl verarbeiten

    Die Zeilen des Gedichts mit Perl verarbeiten

    Eine Befehlsdatei mit Perl einsetzen

    Was Sie in Kapitel 9 gelernt haben

    Technische Hinweise

    10. Das Ende vom Anfang

    Mehr erfahren

    Interessante Tools, Implementierungen und Bibliotheken

    Perl

    PCRE

    Ruby (Oniguruma)

    Python

    RE2

    Eine nordamerikanische Telefonnummer finden

    Eine E-Mail-Adresse finden

    Was Sie in Kapitel 10 gelernt haben

    A. Reguläre Ausdrücke – Referenz

    Reguläre Ausdrücke in QED

    Metazeichen

    Zeichenkürzel

    Whitespace

    Whitespace-Zeichen in Unicode

    Steuerzeichen

    Zeicheneigenschaften

    Schriftsystem-Namen für Zeicheneigenschaften

    POSIX-Zeichenklassen

    Optionen/Modifikatoren

    ASCII-Codetabelle mit Regex

    Technische Hinweise

    Glossar zu regulären Ausdrücken

    Index

    Kolophon

    Vorwort

    Dieses Buch zeigt Ihnen anhand von Beispielen, wie Sie reguläre Ausdrücke schreiben. Ziel ist, das Erlernen von regulären Ausdrücken so einfach wie möglich zu machen. Tatsächlich stellt dieses Buch nahezu jedes Konzept anhand von Beispielen vor, so dass Sie es leicht selbst ausprobieren können.

    Reguläre Ausdrücke helfen Ihnen dabei, Muster in Textstrings zu finden. Genauer gesagt, handelt es sich dabei um Textstrings mit einer bestimmten Syntax, die auf Muster in Strings passen – meist aus Dokumenten oder Dateien.

    Reguläre Ausdrücke fanden Verbreitung, nachdem der Mathematiker Stephen Kleene sein Buch Introduction to Metamathematics schrieb (New York, Van Nostrand). Es wurde erstmals 1952 veröffentlicht, auch wenn die Konzepte aus den frühen 1940er Jahren stammten. Mit dem Aufkommen des Unix-Betriebssystems hatten die Informatiker bessere Möglichkeiten, es einzusetzen – dank der Arbeit von Brian Kernighan, Dennis Ritchie, Ken Thompson und anderen an den AT&T Bell Labs sowie von Tools wie sed und grep in den frühen 1970er Jahren.

    Der erste Einsatz regulärer Ausdrücke, den ich in einem Computerprogramm finden konnte, war im QED-Editor. Der QED – Abkürzung von Quick Editor – war für das Berkeley-Timesharing-System geschrieben worden, das auf dem Scientific Data Systems SDS 940 lief. Im Jahr 1970 dokumentiert, handelte es sich um eine Neuauflage (von Ken Thompson) eines früheren Editors auf dem MIT Compatible-Time-Sharing-System. Hier fand sich eine der ersten praktikablen Implementierungen regulärer Ausdrücke auf einem Computer. (Tabelle A.1 in Anhang A beschreibt die Regex-Features von QED.)

    Ich werde eine ganze Reihe von Tools nutzen, um die Beispiele zu demonstrieren. Sie werden sie hoffentlich nützlich und hilfreich finden. Andere Tools habe ich nicht eingesetzt, weil sie nicht einfach auf Ihrem Windows-System zu nutzen sind. Sie können diejenigen überspringen, die Ihnen nicht praktisch genug erscheinen oder die Sie optisch nicht ansprechen. Aber ich empfehle jedem, der ernsthaft im Computerumfeld tätig sein will, reguläre Ausdrücke in einer Unix-basierten Umgebung zu erlernen. Ich arbeite in dieser Umgebung seit 25 Jahren und lerne immer noch jeden Tag etwas Neues.

    »Diejenigen, die Unix nicht verstehen, sind dazu verdammt, es neu zu erfinden – nur schlechter.«

    Henry Spencer

    Einige der Tools, die ich Ihnen zeigen werde, stehen online über einen Webbrowser zur Verfügung. Das dürfte für die meisten Leser am einfachsten sein. Andere nutzen Sie von der Befehlszeile aus und ein paar laufen auf dem Desktop. Die Tools lassen sich leicht herunterladen, wenn Sie sie noch nicht besitzen. Der Großteil davon ist kostenlos oder sehr günstig.

    Dieses Buch kümmert sich nicht allzu sehr um Begrifflichkeiten. Ich werde Ihnen bei Bedarf die notwendigen Begriffe erklären, aber nur in kleinen Dosen. Ich habe diesen Weg gewählt, weil ich im Laufe der Jahre festgestellt habe, dass Fachbegriffe häufig zu Verständnisproblemen führen. Mit anderen Worten: Ich werde Sie möglichst nicht mit dem trockenen Fachvokabular behelligen, das reguläre Ausdrücke beschreibt. Denn die Idee dieses Buches ist, dass man nützliche Dinge schon erledigen kann, bevor man alles über ein bestimmtes Thema weiß.

    Es gibt viele verschiedene Implementierungen regulärer Ausdrücke. Sie finden sie in Unix-Befehlszeilentools wie vi (vim), grep und sed. Es gibt reguläre Ausdrücke in Programmiersprachen wie Perl (natürlich), Java, JavaScript, C# oder Ruby und vielen weiteren, und sie finden sich in deklarativen Sprachen wie XSLT 2.0. Auch gibt es sie in Anwendungen wie Notepad++, Oxygen oder TextMate.

    Die meisten dieser Implementierungen haben Gemeinsamkeiten und Unterschiede. Ich werde in diesem Buch nicht auf alle Unterschiede eingehen, aber die wichtigsten werden erwähnt. Wenn ich versuchen würde, alle Unterschiede zwischen allen Implementierungen zu dokumentieren, müsste ich mich danach vermutlich einweisen lassen. In diesem Buch werde ich auf diese Art von Details nicht allzu sehr eingehen. Sie erwarten wie angekündigt eine Einführung in das Thema – und die erhalten Sie auch.

    Wer dieses Buch lesen sollte

    Zielgruppe dieses Buchs sind Leute, die noch nie zuvor einen regulären Ausdruck geschrieben haben. Kennen Sie sich mit regulären Ausdrücken oder der Programmierung noch nicht aus, ist dieses Buch ein guter Ausgangspunkt. Mit anderen Worten: Ich schreibe für den Leser, der schon von regulären Ausdrücken gehört hat und interessiert daran ist, aber der sie noch nicht versteht. Wenn Sie sich in dieser Beschreibung wiederfinden, ist dieses Buch für Sie genau richtig.

    Wir gehen Schritt für Schritt vor und bewegen uns von einfachen hin zu komplexen Themen.

    Haben Sie schon ein wenig über reguläre Ausdrücke und ihren Einsatz gelernt oder sind Sie ein erfahrener Programmierer, ist dieses Buch vielleicht nicht unbedingt der richtige Einstiegspunkt für Sie. Es handelt sich um Einsteigerbuch, bei dem dem Leser ein wenig die Hand gehalten werden soll. Haben Sie schon reguläre Ausdrücke geschrieben und sind vertraut mit ihnen, kann auch Ihnen dieses Buch eine Hilfe sein, aber ich werde vermutlich langsamer vorgehen, als Sie sich das wünschen.

    Ich empfehle als Folgeliteratur eine Reihe von Büchern. Schauen Sie sich als erstes Reguläre Ausdrücke, 3. Auflage von Jeff Friedl an (siehe http://www.oreilly.de/catalog/regex3ger). Friedls Buch behandelt die regulären Ausdrücke sehr umfassend und ich empfehle es sehr. Auch möchte ich Ihnen das Reguläre Ausdrücke Kochbuch (siehe http://www.oreilly.de/catalog/regexcbger) von Jan Goyvaerts und Steven Levithan ans Herz legen. Jan Goyvaerts ist der Entwickler von RegexBuddy, einer leistungsfähigen Desktopanwendung (siehe http://www.regexbuddy.com/). Steven Levithan hat RegexPal geschrieben, einen Online-Prozessor für reguläre Ausdrücke, den Sie im ersten Kapitel dieses Buches einsetzen werden (siehe http://www.regexpal.com).

    Was Sie für dieses Buch benötigen

    Um dieses Buch möglichst sinnvoll einsetzen zu können, benötigen Sie Zugriff auf Tools, die auf Unix- oder Linux-Betriebssystemen bereitstehen, wie zum Beispiel Darwin auf dem Mac, einer Variante von BSD (Berkeley Software Distribution) auf dem Mac, oder Cygwin auf einem Windows PC, das in seiner Distribution viele GNU-Tools mitbringt (siehe http://www.cygwin.com und http://www.gnu.org).

    Es gibt viele Beispiele, die Sie ausprobieren können. Wenn Sie wollen, schauen Sie sie sich nur an, aber um richtig etwas daraus zu lernen, müssen Sie soviele wie möglich selbst nutzen. Denn meiner Meinung nach lernt man am besten, indem man mitmacht und nicht, indem man nur zuschaut. Sie lernen Websites kennen, auf denen Sie durch farbliche Hervorhebungen erkennen, welche Textabschnitte erkannt wurden. Ich stelle Ihnen Befehlszeilen-Tools aus der Unix-Welt und Desktop-Anwendungen vor, die reguläre Ausdrücke analysieren oder sie einsetzen, um Texte zu durchsuchen.

    Sie werden Beispiele aus diesem Buch auf Github unter https://github.com/michaeljamesfitzgerald/Introducing-Regular-Expressions finden. Eine Zusammenstellung all der Beispiele und Testdateien aus diesem Buch finden Sie zum Herunterladen auch unter http://examples.oreilly.com/9781449392680/examples.zip. Es wäre am besten, Sie erstellen ein Verzeichnis auf Ihrem Computer und laden dann diese Dateien in den Ordner herunter, bevor Sie richtig in das Buch einsteigen.

    Typographische Konventionen

    In diesem Buch werden die folgenden typographischen Konventionen befolgt:

    Kursiv

    Steht für neue Begriffe, URLs, E-Mail-Adressen, Dateinamen, Dateierweiterungen und so weiter.

    Nichtproportionalschrift

    Wird für Programmcode (auch innerhalb von Absätzen) genutzt, um auf Programmelemente wie Ausdrücke und Befehlszeilen oder andere Elemente zu verweisen.

    Tipp

    Dieses Symbol steht für einen Tipp, einen Vorschlag oder eine allgemeine Anmerkung.

    Danksagung

    Erneut möchte ich mich bei meinem Lektor Simon St. Laurent bei O'Reilly bedanken, einem sehr geduldigen Menschen, ohne den dieses Buch nie das Licht der Welt erblickt hätte. Danke sehr auch an Seara Patterson Coburn

    Enjoying the preview?
    Page 1 of 1