Sie sind hier
E-Book

Reguläre Ausdrücke

AutorJeffrey E. F. Friedl
VerlagO'Reilly Verlag
Erscheinungsjahr2009
Seitenanzahl557 Seiten
ISBN9783897217904
FormatPDF/ePUB
Kopierschutzkein Kopierschutz/DRM
GerätePC/MAC/eReader/Tablet
Preis35,99 EUR
Reguläre Ausdrücke sind ein leistungsstarkes Mittel zur Verarbeitung von Texten und Daten. Wenn Sie reguläre Ausdrücke noch nicht kennen, wird Ihnen dieses Buch eine ganz neue Welt eröffnen. Aufgrund der ausgesprochen detaillierten und tiefgründigen Behandlung des Themas ist dieses Buch aber auch für Experten eine wahre Trouvaille. Die neue Auflage dieses anerkannten Standardwerks behandelt jetzt auch die Unterstützung regulärer Ausdrücke in PHP sowie Suns java.util.regex. Der klare und unterhaltsame Stil des Buchs hat schon Tausenden von Programmierern das an sich trockene Thema nähergebracht, und mit den vielen Beispielen zu Problemen aus dem Programmieralltag ist Reguläre Ausdrücke eine praktische Hilfe bei der täglichen Arbeit. Reguläre Ausdrücke sind überall Sie sind standardmäßig in Perl, PHP, Java, Python, Ruby, MySQL, VB.NET und C# (und allen Sprachen des .NET-Frameworks) sowie anderen Programmiersprachen und Werkzeugen eingebaut. Dieses Buch geht detailliert auf die Unterschiede und Gemeinsamkeiten bei der Behandlung regulärer Ausdrücke in diesen Sprachen und Werkzeugen ein. Besonders ausführlich werden die Regex-Features von Perl, Java, PHP und .NET behandelt. Reguläre Ausdrücke sind mächtig Reguläre Ausdrücke sind sehr leistungsfähig und flexibel. Dennoch bleibt ihre Anwendung oft unter ihren Möglichkeiten. Mit regulären Ausdrücken können Sie komplexe und subtile Textbearbeitungsprobleme lösen, von denen Sie vielleicht nie vermutet hätten, daß sie sich automatisieren lassen. Reguläre Ausdrücke ersparen Ihnen Arbeit und Ärger, und viele Probleme lassen sich mit ihnen auf elegante Weise lösen.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

Metazeichen bei egrep


Wir beginnen mit einigen Metazeichen von egrep, um die Möglichkeiten dieses Werkzeugs auszuloten. Ich werde diese nur kurz mit ein paar Beispielen behandeln; die erschöpfende Beschreibung folgt in späteren Kapiteln.

Typografische Konventionen

Vor Beginn stellen Sie bitte sicher, dass Sie die hier verwendeten typografischen Konventionen kennen („Typografische Konventionen“).

Zeilenanfang und Zeilenende


Wahrscheinlich am einfachsten zu verstehen sind die Metazeichen ^ (Zirkumflex) und $ (Dollar), die für den Anfang bzw. das Ende der zu prüfenden Zeile stehen. Wie wir gesehen haben, findet der reguläre Ausdrück ding die Zeichen d?i?n?g irgendwo auf der Zeile, aber ^ding findet die Zeichen d?i?n?g nur dann, wenn sie am Anfang der Zeile stehen. Analog passt der reguläre Ausdrück ding$ nur am Ende der Zeile, wenn zum Beispiel eine Zeile mit Unding endet. Weil Zirkumflex und Dollar den regulären Ausdrück am Anfang oder am Ende der Zeile festmachen, nennt man sie Zeilenanker oder einfach Anker.

Machen Sie es sich zur Gewohnheit, reguläre Ausdrücke in einem wörtlichen Sinn zu interpretieren. Lesen Sie nicht:

^ding passt auf eine Zeile mit ding am Anfang

sondern eher:

^ding passt auf einen Zeilenanfang, unmittelbar gefolgt von d, unmittelbar gefolgt von i, unmittelbar gefolgt von n, unmittelbar gefolgt von g.

Das kommt zwar auf dasselbe heraus, aber die wörtliche Lesart erlaubt es, einen neuen Ausdruck besser zu verstehen. Wie würde egrep ^ding$, ^$ oder ganz einfach ^ allein interpretieren? Für die Auflösung bitte umblättern.

Der Zirkumflex und das Dollarzeichen sind insofern speziell, als sie eine Position in der Zeile beschreiben und nicht ein Zeichen selbst. Es gibt natürlich einige Möglichkeiten, um auf wirkliche Zeichen in der Zeile zu prüfen. Neben Literalen, die für das Zeichen selbst stehen, gibt es einige andere Metazeichen, die in den nächsten Abschnitten behandelt werden.

Zeichenklassen


Eines von mehreren Zeichen erkennen


Nehmen wir an, Sie wollen nach dem String »Birma« suchen, aber auch »Burma«[4] zulassen. Die Konstruktion [...], meist Zeichenklasse genannt, ermöglicht es, eine Liste von Zeichen anzugeben, nach denen gesucht werden soll. Ein i passt nur auf ein i, ein u nur auf ein u, ein iu aber auf beide. Der reguläre Ausdruck B[iu]rma bedeutet also wörtlich: Suche nach B, gefolgt von einem i oder einem u, gefolgt von r, einem m und danach einem a. Ich bin ziemlich schlecht in der Rechtschreibung, daher benutze ich oft reguläre Ausdrücke, um Wörter zu finden, die ich immer wieder falsch schreibe. Einer meiner häufigen Fehler ist sep[ea]r[ea]te, weil ich mich nie daran erinnern kann, ob das Wort nun »seperate«, »separate«, »separete« oder wie auch immer geschrieben wird.

Beachten Sie, dass zwischen den Zeichen außerhalb der Zeichenklasse (hier r, m und a im vollständigen Ausdruck B[iu]rma) ein Nacheinander oder ein »und dann« impliziert wird – zunächst ein r und dann ein m und dann ein a. Ganz anders innerhalb der Zeichenklasse: Dort spielt die Reihenfolge überhaupt keine Rolle, es geht dort um ein oder.

Oder vielleicht wollen Sie die Groß- oder Kleinschreibung eines Wortes zulassen: [Rr]ot. Das passt noch immer auch auf Zeilen, bei denen der String rot oder Rot als Teil eines Wortes vorkommt, etwa in Protest. Ich reite etwas auf diesem Punkt herum, weil meine Erfahrung zeigt, dass dies bei Neulingen ein Stolperstein ist. Wenn wir ein paar weitere Metazeichen kennen, werde ich erneut darauf zurückkommen.

Die Liste in den eckigen Klammern kann beliebig viele Zeichen enthalten. Zum Beispiel erkennt [123456] irgendeine der angegebenen Ziffern. Diese Zeichenklasse kann als Teil von <H[123456]> (erkennt <H1>, <H2>, <H3> usw.) nützlich sein, wenn es darum geht, HTML-Tags zu prüfen.

Innerhalb einer Zeichenklasse gibt das Zeichenklassen-Metazeichen ›-‹ (Bindestrich) einen Bereich von Zeichen an: <H[1-6]> bedeutet exakt dasselbe wie das vorherige Beispiel. [0-9] und [a-z] sind übliche Abkürzungen für Ziffern bzw. Kleinbuchstaben. Mehrfache Bereiche sind zugelassen. [0123456789abcdefABCDEF] kann also kürzer so geschrieben werden: [0-9a-fA-F] (oder auch [A-Fa-f0-9], die Reihenfolge der Bereiche spielt keine Rolle). Diese drei Bereiche werden oft gebraucht, wenn man mit hexadezimalen Zahlen arbeitet. Bereiche können auch mit Literalen kombiniert werden: [0-9A-Z_!.?] passt auf Ziffern, Großbuchstaben, den Unterstrich, Ausrufezeichen, Punkt oder Fragezeichen.

Beachten Sie, dass der Bindestrich nur innerhalb einer Zeichenklasse ein Metazeichen ist – außerhalb dieser ist er ein normaler Bindestrich. Sogar innerhalb einer Zeichenklasse ist er nicht immer ein Metazeichen. Falls der Bindestrich das erste Zeichen innerhalb der Klasse ist, kann er ja schlecht einen Bereich angeben; er wird dann als Literal behandelt. Ganz ähnlich sind das Fragezeichen und der Punkt in einem regulären Ausdruck normalerweise Metazeichen, aber nicht innerhalb einer Zeichenklasse! Um das ganz klarzumachen: Nur die zwei Bindestriche in [0-9A-Z_!.?] sind Metazeichen.

Zeichenklassen haben ihre eigene Miniatur-Sprache. Die Regeln, welche Zeichen als Metazeichen gelten (und was deren Funktion ist), sind inner- und außerhalb von Zeichenklassen verschieden.

Weitere Beispiele dazu folgen in Kürze.

Negierte Zeichenklassen


Wenn man [^...] statt [...] benutzt, passt die Klasse auf alle Zeichen, die nicht unter den angegebenen Zeichen sind. Zum Beispiel erkennt [^1-6] alle Zeichen außer 1 bis 6. Der Zirkumflex als erstes Zeichen in der Klasse »negiert« also die Liste – statt alle erwünschten Zeichen aufzulisten, gibt man die unerwünschten an.

Sicher ist Ihnen aufgefallen, dass das Zeichen ^ derselbe...

Blick ins Buch

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

Apps effektiv managen und vermarkten

E-Book Apps effektiv managen und vermarkten
Die eigene App erfolgreich veröffentlichen: Von der Konzeption bis zur Vermarktung Format: PDF

Lernen Sie Ihre App effektiv, strukturiert und begeisternd weltweit zu vermarkten. In diesem praxisorientierten Buch erhalten Sie einen prägnanten Überblick von der Idee und Konzeption einer App,…

Prozessübergreifendes Projektmanagement

E-Book Prozessübergreifendes Projektmanagement
Grundlagen erfolgreicher Projekte Format: PDF

Projektmanagement ist in Zeiten von enger werdenden Projektbudgets und Projektzeitplänen eine zunehmende Herausforderung geworden. Die Autoren geben wertvolle Hilfestellungen in Krisensituationen und…

Python 3 - Intensivkurs

E-Book Python 3 - Intensivkurs
Projekte erfolgreich realisieren Format: PDF

Python ist eine vollwertige Programmiersprache, mit der sich auch größere Anwendungen entwickeln lassen. In den letzten Jahren hat sie an Beliebtheit gewonnen, und mit Python 3 steht eine stark…

Management von IT-Projekten

E-Book Management von IT-Projekten
Von der Planung zur Realisierung Format: PDF

Kenntnisse des Projektmanagements und seine Anwendungsmöglichkeiten sind für IT-Manager und IT-Entwickler unentbehrlich. In diesem Buch werden die wichtigsten Verfahren und Methoden für das…

Informatik

E-Book Informatik
Anwendungsorientierte Einführung in die allgemeine Wirtschaftsinformatik Format: PDF

Das einführende Informatik-Lehrbuch wendet sich nicht nur an Informatik-Studenten, sondern sogar in erster Linie an Studierende und Praktiker solcher Disziplinen, in denen Informatik zur…

Prozessübergreifendes Projektmanagement

E-Book Prozessübergreifendes Projektmanagement
Grundlagen erfolgreicher Projekte Format: PDF

Projektmanagement ist in Zeiten von enger werdenden Projektbudgets und Projektzeitplänen eine zunehmende Herausforderung geworden. Die Autoren geben wertvolle Hilfestellungen in Krisensituationen und…

Profikurs ABAP®

E-Book Profikurs ABAP®
Konkrete, praxisorientierte Lösungen - Tipps, Tricks und jede Menge Erfahrung Format: PDF

Professionelle und sichere Anwendungsentwicklung unter SAP R/3® ist kein Zufall, sondern eine Sache der Erfahrung. Das Resultat: Tricks und Kniffe, von denen auch Sie als ABAP® Professional…

Wege aus der Softwarekrise

E-Book Wege aus der Softwarekrise
Verbesserungen bei der Softwareentwicklung Format: PDF

Seit Jahrzehnten steckt die Softwareentwicklung in der Krise. Laut aktuellen Statistiken gehen immer noch mehr als die Hälfte aller in der IT-Produktion eingesetzten Mittel verloren. Angekündigte…

Weitere Zeitschriften

MENSCHEN. das magazin

MENSCHEN. das magazin

MENSCHEN. das magazin informiert über Themen, die das Zusammenleben von Menschen in der Gesellschaft bestimmen -und dies konsequent aus Perspektive der Betroffenen. Die Menschen, um die es geht, ...

arznei-telegramm

arznei-telegramm

Das arznei-telegramm® informiert bereits im 51. Jahrgang Ärzte, Apotheker und andere Heilberufe über Nutzen und Risiken von Arzneimitteln. Das arznei-telegramm®  ist neutral und ...

cards Karten cartes

cards Karten cartes

Die führende Zeitschrift für Zahlungsverkehr und Payments – international und branchenübergreifend, erscheint seit 1990 monatlich (viermal als Fachmagazin, achtmal als ...

Die Versicherungspraxis

Die Versicherungspraxis

Behandlung versicherungsrelevanter Themen. Erfahren Sie mehr über den DVS. Der DVS Deutscher Versicherungs-Schutzverband e.V, Bonn, ist der Interessenvertreter der versicherungsnehmenden Wirtschaft. ...

DSD Der Sicherheitsdienst

DSD Der Sicherheitsdienst

Der "DSD – Der Sicherheitsdienst" ist das Magazin der Sicherheitswirtschaft. Es erscheint viermal jährlich und mit einer Auflage von 11.000 Exemplaren. Der DSD informiert über aktuelle Themen ...

rfe-Elektrohändler

rfe-Elektrohändler

rfe-Elektrohändler ist die Fachzeitschrift für die CE- und Hausgeräte-Branche. Wichtige Themen sind: Aktuelle Entwicklungen in beiden Branchen, Waren- und Verkaufskunde, Reportagen über ...

F- 40

F- 40

Die Flugzeuge der Bundeswehr, Die F-40 Reihe behandelt das eingesetzte Fluggerät der Bundeswehr seit dem Aufbau von Luftwaffe, Heer und Marine. Jede Ausgabe befasst sich mit der genaue Entwicklungs- ...