Reguläre Ausdrücke Kochbuch

Größe: px
Ab Seite anzeigen:

Download "Reguläre Ausdrücke Kochbuch"

Transkript

1 Detaillierte Lösungen für acht Programmiersprachen Mit Einstiegs-Tutorial Reguläre Ausdrücke Kochbuch O Reilly Jan Goyvaerts & Steven Levithan Deutsche Übersetzung von Thomas Demmig

2 Inhalt Vorwort XI 1 Einführung in reguläre Ausdrücke Definition regulärer Ausdrücke Suchen und Ersetzen mit regulären Ausdrücken Tools für das Arbeiten mit regulären Ausdrücken Grundlagen regulärer Ausdrücke Literalen Text finden Nicht druckbare Zeichen finden Ein oder mehrere Zeichen finden Ein beliebiges Zeichen finden Etwas am Anfang und/oder Ende einer Zeile finden Ganze Wörter finden Codepoints, Eigenschaften, Blöcke und Schriftsysteme bei Unicode Eine von mehreren Alternativen finden Gruppieren und Einfangen von Teilen des gefundenen Texts Vorher gefundenen Text erneut finden Teile des gefundenen Texts einfangen und benennen Teile der Regex mehrfach wiederholen Minimale oder maximale Wiederholung auswählen Unnötiges Backtracking vermeiden Aus dem Ruder laufende Wiederholungen verhindern Etwas auf Übereinstimmung prüfen, ohne es dem Gesamtergebnis hinzuzufügen Abhängig von einer Bedingung eine von zwei Alternativen finden Kommentare für einen regulären Ausdruck V

3 2.19 Literalen Text im Ersetzungstext nutzen Einfügen des Suchergebnisses in den Ersetzungstext Teile des gefundenen Texts in den Ersetzungstext einfügen Suchergebniskontext in den Ersetzungstext einfügen Mit regulären Ausdrücken programmieren Literale reguläre Ausdrücke im Quellcode Importieren der Regex-Bibliothek Erstellen eines Regex-Objekts Optionen für reguläre Ausdrücke setzen Auf eine Übereinstimmung in einem Text prüfen Auf eine vollständige Übereinstimmung einer Regex mit einem Text prüfen Auslesen des übereinstimmenden Texts Position und Länge der Übereinstimmung ermitteln Teile des übereinstimmenden Texts auslesen Eine Liste aller Übereinstimmungen erhalten Durch alle Übereinstimmungen iterieren Übereinstimmungen in prozeduralem Code überprüfen Eine Übereinstimmung in einer anderen Übereinstimmung finden Alle Übereinstimmungen ersetzen Übereinstimmungen durch Teile des gefundenen Texts ersetzen Übereinstimmungen durch Text ersetzen, der im Code erzeugt wurde Alle Übereinstimmungen innerhalb der Übereinstimmungen einer anderen Regex ersetzen Alle Übereinstimmungen zwischen den Übereinstimmungen einer anderen Regex ersetzen Einen String aufteilen Einen String aufteilen und die Regex-Übereinstimmungen behalten Zeile für Zeile suchen Validierung und Formatierung Adressen überprüfen Nordamerikanische Telefonnummern validieren Internationale Telefonnummern überprüfen Klassische Datumsformate validieren Klassische Datumsformate exakt validieren Klassische Zeitformate validieren Datums- und Uhrzeitwerte im Format ISO 8601 validieren VI Inhalt

4 4.8 Eingabe auf alphanumerische Zeichen beschränken Die Länge des Texts begrenzen Die Zeilenanzahl eines Texts beschränken Antworten auswerten US-Sozialversicherungsnummern validieren ISBN validieren ZIP-Codes validieren Kanadische Postleitzahlen validieren Britische Postleitzahlen validieren Deutsche Postleitzahlen validieren Namen von Vorname Nachname nach Nachname, Vorname umwandeln Kreditkartennummern validieren Europäische Umsatzsteuer-Identifikationsnummern Wörter, Zeilen und Sonderzeichen Ein bestimmtes Wort finden Eines von mehreren Wörtern finden Ähnliche Wörter finden Alle Wörter außer einem bestimmten finden Ein beliebiges Wort finden, auf das ein bestimmtes Wort nicht folgt Ein beliebiges Wort finden, das nicht hinter einem bestimmten Wort steht Wörter finden, die nahe beieinanderstehen Wortwiederholungen finden Doppelte Zeilen entfernen Vollständige Zeilen finden, die ein bestimmtes Wort enthalten Vollständige Zeilen finden, die ein bestimmtes Wort nicht enthalten Führenden und abschließenden Whitespace entfernen Wiederholten Whitespace durch ein einzelnes Leerzeichen ersetzen Regex-Metazeichen maskieren Zahlen Integer-Zahlen Hexadezimale Zahlen Binärzahlen Führende Nullen entfernen Zahlen innerhalb eines bestimmten Bereichs Hexadezimale Zahlen in einem bestimmten Bereich finden Inhalt VII

5 6.7 Gleitkommazahlen Zahlen mit Tausendertrennzeichen Römische Zahlen URLs, Pfade und Internetadressen URLs validieren URLs in einem längeren Text finden URLs in Anführungszeichen in längerem Text finden URLs mit Klammern in längerem Text finden URLs in Links umwandeln URNs validieren Generische URLs validieren Das Schema aus einer URL extrahieren Den Benutzer aus einer URL extrahieren Den Host aus einer URL extrahieren Den Port aus einer URL extrahieren Den Pfad aus einer URL extrahieren Die Query aus einer URL extrahieren Das Fragment aus einer URL extrahieren Domainnamen validieren IPv4-Adressen finden IPv6-Adressen finden Einen Pfad unter Windows validieren Pfade unter Windows in ihre Bestandteile aufteilen Den Laufwerkbuchstaben aus einem Pfad unter Windows extrahieren Den Server und die Freigabe aus einem UNC-Pfad extrahieren Die Ordnernamen aus einem Pfad unter Windows extrahieren Den Dateinamen aus einem Pfad unter Windows extrahieren Die Dateierweiterung aus einem Pfad unter Windows extrahieren Ungültige Zeichen aus Dateinamen entfernen Markup und Datenaustausch Tags im XML-Stil finden <b>-tags durch <strong> ersetzen Alle Tags im XML-Stil außer <em> und <strong> entfernen XML-Namen finden Einfachen Text durch Ergänzen von <p>- und <br>- Tags nach HTML konvertieren Ein bestimmtes Attribut in Tags im XML-Stil finden VIII Inhalt

6 8.7 Tags vom Typ <table> ein Attribut cellspacing hinzufügen, die es noch nicht haben Kommentare im XML-Stil entfernen Wörter in Kommentaren im XML-Stil finden Ändern der Feldbegrenzer in CSV-Dateien CSV-Felder aus einer bestimmten Spalte extrahieren Sektionsüberschriften in INI-Dateien finden Sektionsblöcke in INI-Dateien finden Name/Wert-Paare in INI-Dateien finden Index Inhalt IX

7 KAPITEL 1 Einführung in reguläre Ausdrücke Wenn Sie dieses Kochbuch aufgeschlagen haben, sind Sie wahrscheinlich schon ganz erpicht darauf, ein paar der hier beschriebenen seltsamen Strings mit Klammern und Fragezeichen in Ihren Code einzubauen. Falls Sie schon so weit sind: nur zu! Die verwendbaren regulären Ausdrücke sind in den Kapiteln 4 bis 8 aufgeführt und beschrieben. Aber wenn Sie zunächst die ersten Kapitel dieses Buchs lesen, spart Ihnen das langfristig möglicherweise eine Menge Zeit. So finden Sie in diesem Kapitel zum Beispiel eine Reihe von Hilfsmitteln einige wurden von Jan, einem der beiden Autoren, erstellt, mit denen Sie einen regulären Ausdruck testen und debuggen können, bevor Sie ihn in Ihrem Code vergraben, wo Fehler viel schwieriger zu finden sind. Außerdem zeigen Ihnen diese ersten Kapitel, wie Sie die verschiedenen Features und Optionen regulärer Ausdrücke nutzen können, um Ihr Leben leichter zu machen. Sie werden verstehen, wie reguläre Ausdrücke funktionieren, um deren Performance zu verbessern, und Sie lernen die subtilen Unterschiede kennen, die in den verschiedenen Programmiersprachen existieren selbst in unterschiedlichen Versionen Ihrer bevorzugten Programmiersprache. Wir haben uns also mit diesen Grundlageninformationen viel Mühe gegeben und sind recht zuversichtlich, dass Sie sie lesen werden, bevor Sie mit der Anwendung regulärer Ausdrücke beginnen oder spätestens dann, wenn Sie nicht mehr weiterkommen und Ihr Wissen aufstocken wollen. Definition regulärer Ausdrücke Im Rahmen dieses Buchs ist ein regulärer Ausdruck eine bestimmte Art von Textmuster, das Sie in vielen modernen Anwendungen und Programmiersprachen nutzen können. Mit ihm können Sie prüfen, ob eine Eingabe zu einem Textmuster passt, Sie können Texte eines bestimmten Musters in einer größeren Datei finden, durch anderen Text oder durch eine veränderte Version des bisherigen Texts ersetzen, einen Textabschnitt in eine Reihe von Unterabschnitten aufteilen oder auch sich selbst ins Knie schießen. Dieses Buch hilft Ihnen dabei, genau zu verstehen, was Sie tun, um Katastrophen zu vermeiden. 1

8 Geschichte des Begriffs regulärer Ausdruck Der Begriff regulärer Ausdruck kommt aus der Mathematik und der theoretischen Informatik. Dort steht er für eine Eigenschaft mathematischer Ausdrücke namens Regularität. Solch ein Ausdruck kann als Software mithilfe eines deterministischen endlichen Automaten (DEA) implementiert werden. Ein DEA ist ein endlicher Automat, der kein Backtracking nutzt. Die Textmuster, die von den ersten grep-tools genutzt wurden, waren reguläre Ausdrücke im mathematischen Sinn. Auch wenn der Name geblieben ist, sind aktuelle reguläre Ausdrücke im Perl-Stil keine regulären Ausdrücke im mathematischen Sinn. Sie sind mit einem nicht deterministischen endlichen Automaten (NEA) implementiert. Später werden Sie noch mehr über Backtracking erfahren. Alles, was ein normaler Entwickler aus diesem Textkasten mitnehmen muss, ist, dass ein paar Informatiker in ihren Elfenbeintürmen sehr verärgert darüber sind, dass ihr wohldefinierter Begriff durch eine Technologie überlagert wurde, die in der realen Welt viel nützlicher ist. Wenn Sie reguläre Ausdrücke sinnvoll einsetzen, vereinfachen sie viele Programmierund Textbearbeitungsaufgaben oder ermöglichen gar erst deren Umsetzung. Ohne sie bräuchten Sie Dutzende, wenn nicht Hunderte von Zeilen prozeduralen Codes, um zum Beispiel alle -Adressen aus einem Dokument zu ziehen Code, der nicht besonders spannend zu schreiben ist und der sich auch nur schwer warten lässt. Mit dem passenden regulären Ausdruck, wie er in Rezept 4.1, zu finden ist, braucht man nur ein paar Zeilen Code, wenn nicht sogar nur eine einzige. Aber wenn Sie versuchen, mit einem einzelnen regulären Ausdruck zu viel auf einmal zu machen, oder wenn Sie Regexes auch dort nutzen, wo sie eigentlich nicht sinnvoll sind, werden Sie folgendes Statement nachvollziehen können: 1 Wenn sich manche Menschen einem Problem gegenübersehen, denken sie: Ah, ich werde reguläre Ausdrücke nutzen. Jetzt haben sie zwei Probleme. Dieses zweite Problem taucht jedoch nur auf, wenn diese Menschen die Anleitung nicht gelesen haben, die Sie gerade in den Händen halten. Lesen Sie weiter. Reguläre Ausdrücke sind ein mächtiges Tool. Wenn es bei Ihrer Arbeit darum geht, Text auf einem Computer zu bearbeiten oder zu extrahieren, wird Ihnen ein solides Grundwissen über reguläre Ausdrücke viele Überstunden ersparen. Viele Varianten regulärer Ausdrücke Okay, der Titel des vorigen Abschnitts war gelogen. Wir haben gar nicht definiert, was reguläre Ausdrücke sind. Das können wir auch nicht. Es gibt keinen offiziellen Standard, der genau definiert, welche Textmuster reguläre Ausdrücke sind und welche nicht. Wie 1 Jeffrey Friedl hat die Geschichte dieses Zitats in seinem Blog verfolgt: 2 Kapitel 1: Einführung in reguläre Ausdrücke

9 Sie sich vorstellen können, hat jeder Designer einer Programmiersprache und jeder Entwickler einer textverarbeitenden Anwendung eine andere Vorstellung davon, was genau ein regulärer Ausdruck tun sollte. Daher sehen wir uns einem ganzen Reigen von Varianten regulärer Ausdrücke gegenüber. Glücklicherweise sind die meisten Designer und Entwickler faul. Warum sollte man etwas total Neues aufbauen, wenn man kopieren kann, was schon jemand anderer gemacht hat? Im Ergebnis lassen sich alle modernen Varianten regulärer Ausdrücke, einschließlich derer, die in diesem Buch behandelt werden, auf die Programmiersprache Perl zurückverfolgen. Wir nennen diese Varianten reguläre Ausdrücke im Perl-Stil. Ihre Syntax ist sehr ähnlich und meist auch kompatibel, aber eben nicht immer. Autoren sind ebenfalls faul. Meistens verwenden wir den Ausdruck Regex oder Regexp, um einen einzelnen regulären Ausdruck zu bezeichnen, und Regexes für den Plural. Regex-Varianten entsprechen nicht eins zu eins den Programmiersprachen. Skriptsprachen haben meist ihre eigene, eingebaute Regex-Variante. Andere Programmiersprachen nutzen Bibliotheken, um eine Unterstützung regulärer Ausdrücke anzubieten. Manche Bibliotheken gibt es für mehrere Sprachen, während man bei anderen Sprachen auch aus unterschiedlichen Bibliotheken wählen kann. Dieses einführende Kapitel kümmert sich nur um die Varianten regulärer Ausdrücke und ignoriert vollständig irgendwelche Programmierüberlegungen. Kapitel 3 beginnt dann mit den Codebeispielen, sodass Sie schon mal in Kapitel 3, Mit regulären Ausdrücken programmieren, spicken könnten, um herauszufinden, mit welchen Varianten Sie arbeiten werden. Aber ignorieren Sie erst einmal den ganzen Programmierkram. Die im nächsten Abschnitt vorgestellten Tools ermöglichen einen viel einfacheren Weg, die Regex-Syntax durch Learning by Doing kennenzulernen. Regex-Varianten in diesem Buch In diesem Buch haben wir die Regex-Varianten ausgewählt, die heutzutage am verbreitetsten sind. Es handelt sich bei allen um Regex-Varianten im Perl-Stil. Manche der Varianten besitzen mehr Features als andere. Aber wenn zwei Varianten das gleiche Feature besitzen, haben sie meist auch die gleiche Syntax dafür. Wir werden auf die wenigen, aber nervigen Unregelmäßigkeiten hinweisen, wenn wir ihnen begegnen. All diese Regex-Varianten sind Teile von Programmiersprachen und Bibliotheken, die aktiv entwickelt werden. Aus der Liste der Varianten können Sie ersehen, welche Versionen in diesem Buch behandelt werden. Im weiteren Verlauf des Buchs führen wir die Varianten ohne Versionen auf, wenn die vorgestellte Regex überall gleich funktioniert. Das ist nahezu immer der Fall. Abgesehen von Fehlerkorrekturen, die Grenzfälle betreffen, ändern sich Regex-Varianten im Allgemeinen nicht, es sei denn, es werden neue Features ergänzt, die einer Syntax Bedeutung verleihen, die vorher als Fehler angesehen wurde: Definition regulärer Ausdrücke 3

10 Perl Perls eingebaute Unterstützung für reguläre Ausdrücke ist der Hauptgrund dafür, dass Regexes heute so beliebt sind. Dieses Buch behandelt Perl 5.6, 5.8 und Viele Anwendungen und Regex-Bibliotheken, die behaupten, reguläre Ausdrücke im Perl- oder einem zu Perl kompatiblen Stil zu nutzen, tun das meist gar nicht. In Wirklichkeit nutzen sie eine Regex-Syntax, die der von Perl ähnlich ist, aber nicht die gleichen Features unterstützt. Sehr wahrscheinlich verwenden sie eine der Regex-Varianten aus dem Rest der Liste. Diese Varianten nutzen alle den Perl-Stil. PCRE PCRE ist die C-Bibliothek Perl-Compatible Regular Expressions, die von Philip Hazel entwickelt wurde. Sie können diese Open Source-Bibliothek unter herunterladen. Dieses Buch behandelt die Versionen 4 bis 7. Obwohl die PCRE behauptet, zu Perl kompatibel zu sein, und dies vermutlich mehr als alle anderen Varianten in diesem Buch auch ist, setzt sie eigentlich nur den Perl- Stil um. Manche Features, wie zum Beispiel die Unicode-Unterstützung, sind etwas anders, und Sie können keinen Perl-Code mit Ihrer Regex mischen, wie es bei Perl selbst möglich ist. Aufgrund der Open Source-Lizenz und der ordentlichen Programmierung hat die PCRE Eingang in viele Programmiersprachen und Anwendungen gefunden. Sie ist in PHP eingebaut und in vielen Delphi-Komponenten verpackt. Wenn eine Anwendung behauptet, reguläre Ausdrücke zu nutzen, die zu Perl kompatibel sind, ohne aufzuführen, welche Regex-Variante genau genutzt wird, ist es sehr wahrscheinlich PCRE..NET Das.NET Framework von Microsoft stellt über das Paket System.Text.Regular- Expressions eine vollständige Regex-Variante im Perl-Stil bereit. Dieses Buch behandelt die.net-versionen 1.0 bis 3.5. Im Prinzip gibt es aber nur zwei Versionen von System.Text.RegularExpressions: 1.0 und 2.0. In.NET 1.1, 3.0 und 3.5 gab es keine Änderungen an den Regex-Klassen. Jede.NET-Programmiersprache, unter anderem C#, VB.NET, Delphi for.net und sogar COBOL.NET, hat einen vollständigen Zugriff auf die.net-variante der Regexes. Wenn eine Anwendung, die mit.net entwickelt wurde, eine Regex- Unterstützung anbietet, können Sie ziemlich sicher sein, dass sie die.net-variante nutzt, selbst wenn sie behauptet, reguläre Ausdrücke von Perl zu nutzen. Eine wichtige Ausnahme bildet das Visual Studio (VS) selbst. Die in VS integrierte Entwicklungsumgebung (IDE) nutzt immer noch die gleiche alte Regex-Variante, die sie von Anfang an unterstützt hat. Und die ist überhaupt nicht im Perl-Stil nutzbar. Java Java 4 ist das erste Java-Release, das durch das Paket java.util.regex eine eingebaute Unterstützung regulärer Ausdrücke anbietet. Schnell wurden dadurch die verschiedenen Regex-Bibliotheken von dritter Seite verdrängt. Abgesehen davon, dass es sich um ein Standardpaket handelt, bietet es auch einen vollständige Regex-Variante im Perl-Stil an und hat eine ausgezeichnete Performance, selbst im Vergleich zu 4 Kapitel 1: Einführung in reguläre Ausdrücke

11 Anwendungen, die in C geschrieben wurden. Dieses Buch behandelt das Paket java.util.regex in Java 4, 5 und 6. Wenn Sie Software verwenden, die in den letzten paar Jahren mit Java entwickelt wurden, wird jede Unterstützung regulärer Ausdrücke vermutlich auf die Java-Variante zurückgreifen. JavaScript In diesem Buch nutzen wir den Begriff JavaScript, um damit die Variante regulärer Ausdrücke zu beschreiben, die in Version 3 des ECMA-262-Standards definiert ist. Dieser Standard ist die Basis der Programmiersprache ECMAScript. Diese ist besser bekannt durch ihre Implementierungen JavaScript und JScript in den verschiedenen Webbrowsern. Internet Explorer 5.5 bis 8.0, Firefox, Opera und Safari implementieren alle Version 3 von ECMA-262. Trotzdem gibt es in allen Browsern unterschiedliche Grenzfälle, in denen sie vom Standard abweichen. Wir weisen auf solche Probleme hin, wenn sie eine Rolle spielen. Ist es möglich, auf einer Website mit einem regulären Ausdruck suchen oder filtern zu können, ohne auf eine Antwort vom Webserver warten zu müssen, wird die Regex-Variante von JavaScript genutzt, die die einzige browserübergreifende Regex- Variante auf Clientseite ist. Selbst VBScript von Microsoft und ActionScript 3 von Adobe nutzen sie. Python Python unterstützt reguläre Ausdrücke durch sein Modul re. Dieses Buch behandelt Python 2.4 und 2.5. Die Unterstützung regulärer Ausdrücke in Python hat sich seit vielen Jahren nicht geändert. Ruby Die Unterstützung regulärer Ausdrücke in Ruby ist wie bei Perl Teil der Sprache selbst. Dieses Buch behandelt Ruby 1.8 und 1.9. Eine Standardkompilierung von Ruby 1.8 verwendet die Variante regulärer Ausdrücke, die direkt im Quellcode von Ruby implementiert ist. Eine Standardkompilierung von Ruby 1.9 nutzt die Oniguruma-Bibliothek für reguläre Ausdrücke. Ruby 1.8 kann so kompiliert werden, dass es Oniguruma verwendet, und Ruby 1.9 so, dass es die ältere Ruby-Regex-Variante nutzt. In diesem Buch bezeichnen wir die native Ruby-Variante als Ruby 1.8 und die Oniguruma-Variante als Ruby 1.9. Um herauszufinden, welche Ruby-Regex-Variante Ihre Site nutzt, versuchen Sie, den regulären Ausdruck a++ zu verwenden. Ruby 1.8 wird Ihnen mitteilen, dass der reguläre Ausdruck ungültig ist, da es keine possessiven Quantoren unterstützt, während Ruby 1.9 damit einen String finden wird, der aus einem oder mehreren Zeichen besteht. Die Oniguruma-Bibliothek ist so entworfen, dass sie abwärtskompatibel zu Ruby 1.8 ist und neue Features so ergänzt, dass keine bestehenden Regexes ungültig werden. Die Implementatoren haben sogar Features darin gelassen, die man wohl besser entfernt hätte, wie zum Beispiel die Verwendung von (?m), mit der der Punkt auch Zeilenumbrüche findet, wofür andere Varianten (?s) nutzen. Definition regulärer Ausdrücke 5

12 Index Symbole - (Bindestrich) aus Kreditkarten-Nummern entfernen 288, 291 für Bereiche in Zeichenklassen 34 Maskieren 340!~ (Operator) 136 # (Rautezeichen) für Kommentare 90 Maskieren 340 $ (Dollarzeichen) als Anker 40, 41, 42, 113, 232 Maskieren in Ersetzungstext 92 $& (Variable) 95, 100, 148, 153 $' (Variable) 100, 207 $+ (Hash) 161, 193 $_ (Variable) 100 $` (Variable) 100, 207 $~ (Variable) in Ruby 148 einfangende Gruppen 159 $~[0] (Variable) 148 ( ) (Klammern), 235 atomare Gruppen 76, 80, 265 einfangende Gruppen 61 Lookbehind nachbauen 86 schon gefundenen Text erneut finden 64 * (Stern) als Anker (Zusicherung) 235 für possessive Quantoren 231 gierig 73 + (Plus-Zeichen) für possessive Quantoren 76, 231, (Komma) als Tausender-Separator 363 im Intervall-Quantor 263 Maskieren 340. (Punkt) ein beliebiges Zeichen finden 38 Finden 231 Missbrauch 38 =~ (Operator) in Perl 136, 153 =~ (Operator) in Ruby 134, 137? (Fragezeichen) für genügsame Quantoren 74 zum optionalen Finden (At-Zeichen) Finden 231 Kodieren in Perl 113 [] (eckige Klammern) zum Definieren von Zeichenklassen 33 \ (Backslash) im Quellcode 110 im Ersetzungstext 92 zum Maskieren von Zeichen 28, 337 innerhalb von Zeichenklassen 34 ^ (Zirkumflex) als Anker 40, 42, 232, 235 Index 505

13 Negieren in Zeichenklassen 34 { } (geschweifte Klammern) zur Wiederholung 70 (vertikaler Balken) als Alternations-Operator 60, 251, 304 A \a (Bell-Zeichen) 30 \A Anker 40, 41, 232 abschließenden Whitespace entfernen 333 ActionScript-Sprache 106 ähnliche Wörter finden 306 akzentuierte Zeichen 56 alphanumerische Zeichen, Eingabe begrenzen 257 Alternation 60 Wörter aus einer Liste finden 304 Zahlen in einem Bereich finden 354 Zeitformate validieren 251 Anker 40, 41 ANSI-Zeichen, Einschränken auf 258 appendreplacement() (Methode) 198 appendtail() (Methode) 198 ASCII-Steuerzeichen (siehe Steuerzeichen) atomare Gruppen 76, 80, 265 atomares Lookaround und Lookbehind 85 Attribute (Markup-Sprachen) 436 bestimmte finden 476 Whitelist 465 At-Zeichen (@) Finden 231 Kodieren in Perl 113 B \B Nicht-Wortgrenzen 45 <b>-tags ersetzen durch <strong> 459 \b Wortgrenze 35, 44, 233, 237, 251, 302 (siehe auch Wörter) Backslash (\) im Quellcode 110 im Ersetzungstext 92 zum Maskieren von Zeichen 28, 337 in Zeichenklassen 34 Backtracking 73 katastrophales 79 unnötiges vermeiden 75 balanciertes Finden 180 bedingte Ausdrücke 318 Bedingungen beim Finden 87 begin() (Methode) in Ruby (MatchData-Klasse) 154 Begrenzer in CSV-Dateien ändern 493 Bell-Zeichen (\a) 30 benannte Bedingungen 88 benannte Captures 66, 99, 160 Gruppen mit gleichen Namen (.NET) 248 benannte einfangende Gruppen 192 benannte Rückwärtsreferenzen 69 Benutzer aus URLs extrahieren 386 Bereiche in Zeichenklassen 34 Binärzahlen finden 348 Bindestrich (-) aus Kreditkarten-Nummern entfernen 288, 291 für Bereiche in Zeichenklassen 34 Maskieren 340 Blöcke, Unicode 52 alle Zeichen aufführen 57 Block-Maskierungen 29, 340 Buchstaben, Unicode-Kategorie 49 C \ca bis \cz Werte 31 C (Sprache) 106 C# (Sprache) 104 literale Regexes 110 Regex-Bibliothek importieren 116 Regex-Objekte erstellen 119 C++ (Sprache) 106 CacheSize (Eigenschaft) in.net 119 CANON_EQ (Konstante) in Java 128 Carriage Return (\r) 30 CASE_INSENSITIVE (Konstante) in Java 125 CDATA-Abschnitte, XML 439 cellspacing-attribut, zu <table>-tags hinzufügen 481 CIL (Common Intermediate Language) Index

14 Codepoints, Unicode 49 Blöcke 52 Comma-Separated Values (siehe CSV) COMMENTS (Konstante) in Java 125 Common Intermediate Language (CIL) 123 compile() (Methode) Java (Pattern-Klasse) 111, 120, 125 Python (re-modul) 121 Regex-Optionen 127 Ruby (Regexp-Klasse) 122 Count (Eigenschaft, Match.Groups) 158 CSV (Comma-Separated Values) 440 Feldbegrenzer ändern 493 Felder aus bestimmten Spalten extrahieren 496 D \D Token 35 \d Token 35, 343 Dateinamen aus Windows-Pfaden extrahieren 430 Erweiterung aus Windows-Pfaden extrahieren 431 ungültige Zeichen entfernen 432 Dateisystem-Pfade (Windows) Aufteilen 420 Dateierweiterungen extrahieren 431 Dateinamen extrahieren 430 Laufwerksbuchstaben extrahieren 425 Ordner extrahieren 427 Validieren 417 Datensätzen in CSV-Dateien 440 Datums 252 Datumsformate validieren 241 ISO 8601-Formate 252 ungültige Datumswerte entfernen 245 DEA-Regex-Engines 355 Delphi for Win Delphi Prism 107 Deterministischer Endlicher Automat (DEA) 2 deutsche Postleitzahlen validieren 283 dezimal, römische Zahlen konvertieren in 366 Dezimalzahlen 359 DOCTYPEs (HTML) 437 Document Type Declaration, HTML 437 Dollarzeichen ($) als Anker 40, 41, 42, 113, 232 Maskieren in Ersetzungstext 92 Domain-Namen validieren 398 doppelte Zeilen entfernen 325 dot all -Modus 38, 123 DOTALL (Konstante) in Java 125 E \E Token zum Unterdrücken von Metazeichen 29, 340 \e (Escape-Zeichen) 30 eckige Klammern [] zum Definieren von Zeichenklassen 33 ECMA-262-Standard 104, 106 ECMAScript (Programmiersprache) 104 ECMAScript (RegexOptions) 128 eifrig, Regex-Engine ist 354 Eigenschaften in Unicode 49 einfangende Gruppen 61, 231 Bedingungen 87 beim Aufteilen von Strings 217 benannte Captures 66, 99, 160, 192 Gruppen mit gleichen Namen (.NET) 248 Details auslesen 154 leere Rückwärtsreferenzen verwenden 321 Lookbehinds nachstellen 86 Teile der Übereinstimmung wieder einfügen 189 Verweise auf nicht-vorhandene Gruppen 98 wiederholte Wörter finden 323 zum Finden von schon gefundenem Text 64 Eingabe parsen 179 Eingabeüberprüfung 271 (siehe auch Validierung) Kreditkarten-Nummern 288 nur alphanumerische Zeichen zulassen 257 Stringlänge 260 Zeilen zählen 265 eingebettete Übereinstimmungen finden 177 Elemente, HTML Adressen validieren 227 end() (Methode) Java (Matcher-Klasse) 152, 158 Python (MatchObject-Klasse) 153 Ruby (MatchData-Klasse) 154 Index 507

15 Entfernen führende Nullen 349 ungültige Zeichen aus Dateinamen 432 Entitäten, HTML 437, 475 EPP (Extensible Provisioning Protocol) 240 ereg-funktionen (PHP) 105 ereg_replace 7 literale reguläre Ausdrücke in 112 Ersetzungstext in Code erzeugt 194 Regex-Übereinstimmung einfügen 95 Teile der Regex-Übereinstimmung e infügen 96 Übereinstimmungskontext einfügen 100 Zeichen maskieren 92 erstes Vorkommen von Zeilen speichern 327, 328 Erweiterungen (Datei), aus Pfaden extrahieren 431 Escape-Zeichen (\e) 30 Europäische Umsatzsteuer-Nummern überprüfen 294 exec() (Methode) in JavaScript 152, 158 über die Übereinstimmungen iterieren 170 ExplicitCapture (RegexOptions) 128 Expresso-Tester 18 EXTENDED (Konstante, Regexp) 127 Extensible Hypertext Markup Language 438 Extensible Markup Language 439 Extensible Provisioning Protocol (EPP) 240 extreme Wiederholung verhindern 78 F \f (Form Feed/Seitenvorschub) 30 Felder in CSV-Dateien 440 extrahieren 496 find() (Methode) in Java (Matcher-Klasse) 135, 147, 152, 164 Iterieren über Übereinstimmungen 170 findall() (Methode) in Python (re-modul) 166 Finden 301, 331 (siehe auch Suchen und ersetzen, Suchen) alle Übereinstimmungen ersetzen 181 am Zeilenanfang und -ende 39 ausgeglichene und rekursive Übereinstimmung 180 beliebiges Zeichen 37 eine von mehreren Alternativen 59 eines von mehreren Zeichen 33 ganze Wörter 44 gefundenen Text auslesen 142 Groß-/Kleinschreibung ignorieren 29, 231 Gruppieren und Einfangen 61 atomare Gruppen 76, 80, 265 benannte Captures (siehe benannte Captures) Gruppen wiederholen 71 Lookaround 81, 89, 261, 302 Lookbehind nachstellen 86 Referenzen auf nicht-vorhandene Gruppen 98 in INI-Dateien (siehe INI-Dateien) IPv4-Adressen 400 IPv6-Adressen 403 Iterieren über alle Übereinstimmungen 167 Kontext in Ersetzungstext einfügen 100 Liste mit allen Übereinstimmungen erhalten 162 literalen Text finden 28 mit Bedingungen 87 exzessive Wiederholung verhindern 78 minimale und maximale Wiederholung 72 Teile der Regex wiederholen 69 nicht-druckbare Zeichen 30 Position und Länge der Übereinstimmung ermitteln 149 Prüfen, ob der gesamte String gefunden wird 137 Prüfen, ob Teile des Strings gefunden werden 131 Tags in Markup-Sprachen 442 Teile der Übereinstimmung einfügen 189 Teile des gefundenen Texts auslesen 154 Übereinstimmungen einer anderen Regex 200 Übereinstimmungen in anderen Übereinstimmungen finden 177 Übereinstimmungen in prozeduralem Code validieren 173 Unicode-Elemente 47 vorher gefundenen Text finden 64 XML-Namen 466 finditer() (Methode) in Python (re-modul) 172 Find-Registerkarte (myregexp.com) 17 Form Feed (\f) 30 Formatieren Datumswerte überprüfen 241 ISO 8601-Formate 252 ungültige Datumswerte entfernen Index

16 Telefonnummern (in Nordamerika) 233 Uhrzeitwerte überprüfen ISO 8601-Formate 252 klassische Formate 250 Vor- und Nachnamen 285 Fragezeichen (?) für genügsame Quantoren 74 zum optionalen Finden 71 Fragment aus einer URL extrahieren 397 Freiform-Modus 90 in Python 114 Option setzen 123 führende Nullen entfernen 349 führenden Whitespace entfernen 333 G ganze Wörter finden 44 Ganzzahlen Finden oder erkennen 341 führende Leerzeichen entfernen 349 in einem bestimmten Bereich finden 350 mit Punkt (Tausender-Trennzeichen) 363 gefundenen Text auslesen 142 gemischte Notation (IPv6) 404, 409, 412 komprimierte gemischte Notation 407, 416 generische URLs validieren 379 genügsame Quantoren 74 Backtracking vermeiden 75 geschweifte Klammern { } zur Wiederholung 70 Get-Unique-Cmdlet (PowerShell) 325 gierige Quantoren 73 Backtracking vermeiden 75 Gleitkommazahlen 359 Grapheme, Unicode 49, 56 grep-funktion, R Project 107 grep-tools 21 Groß-/Kleinschreibung (siehe Schreibweise) Großbuchstaben (siehe Schreibweise) Group (Eigenschaft) in.net (Match()-Funktion) 157 Group (Klasse) in.net 157 group() (Methode) Java (Matcher-Klasse) 158 re-modul (Python) 159 groupdict() (Methode) in Python (MatchObject- Klasse) 159 groups() (Methode) in Python (MatchObject- Klasse) 159 Gruppieren 61 (siehe auch benannte Captures) atomare Gruppen 76, 80, 265 Bedingungen 89 Gruppen wiederholen 71 leere Rückwärtsreferenzen 321 Lookaround 81, 261, 302 Lookbehind nachstellen 86 nicht-vorhandene Gruppen referenzieren 98 gsub() (Methode) in Ruby (String-Klasse) 188, 200 mit Rückwärtsreferenzen 192 H hexadezimale Zahlen finden 345 in einem bestimmten Bereich 357 horizontales Tab-Zeichen (\t) 30 Host aus URL extrahieren 388 HTML (Hypertext Markup Language) 435 <b> durch <strong> ersetzen 459 Attribute zu <table>-tags hinzufügen 481 normalen Text um <p> ergänzen 473 Tags finden 442 Tags validieren 456 Hyperlinks, URLs umwandeln in 376 Hypertext Markup Language 435 I (?-i) Modus-Modifikator 30 (?i) Modus-Modifikator 30 IGNORECASE (Konstante, Regexp) 127 IgnoreCase (Option, RegexOptions) 125 IgnorePatternWhitespace (Option, RegexOptions) 125 Index (Eigenschaft) in.net 151 index (Eigenschaft) in JavaScript 152 INI-Dateien 441 Name/Wert-Paare finden 503 Sektionsblöcke finden 502 Sektionsüberschriften finden 500 Initialisierungsdateien 441 Input in Token zerlegen 179 internationale Telefonnummern validieren 239 Intervall-Quantor 263 Index 509

17 IPv4-Adressen finden 400 IPv6-Adressen finden 403 ISBNs validieren 274 IsMatch() (Methode) in.net 135, 164 ISO 8601-Formate 252 ISO Zeichen, beschränken auf 258 Iterieren über alle Übereinstimmungen 167 J Java (Sprache) (s.a. Matcher (Klasse) in Java, Pattern (Klasse) in Java, String (Klasse) in Java) Ersetzungstext 7 literale reguläre Ausdrücke 111 Regex-Bibliothek importieren 116 Regex-Objekte erstellen 119 Regex-Optionen 125, 128 Regex-Unterstützung 4, 104 java.util.regex (Paket) 4, 7, 104 Verwenden der Regex-Bibliothek 116 JavaScript (Sprache) (siehe auch RegExp (Klasse) in JavaScript, String (Klasse) in JavaScript) Ersetzungstext 7 literale reguläre Ausdrücke 112 Regex-Ausdrücke erstellen 120 Regex-Bibliothek 116 Regex-Optionen 126, 128 Regex-Unterstützung 5, 104 K kanadische Postleitzahlen validieren 282 katastrophales Backtracking 79 Kategorien, Unicode 49 Kaufmannsund (&), Maskieren 340 Klammern ( ), 235 atomare Gruppen 76, 80, 265 einfangende Gruppen 61 (siehe auch einfangende Gruppen) benannte Captures (siehe benannte Captures) Lookbehind nachstellen 86 vorher gefundenen Text finden 64 Kleinbuchstaben (siehe Schreibweise) kombinierende Zeichen 56 Komma (,) als Tausender-Trenner 363 im Intervall-Quantor 263 Maskieren 340 Kommentare in HTML 437 in INI-Dateien 441 in regulären Ausdrücken 90 in XML entfernen 484 validieren 486 Wörter finden in 488 komprimierte gemischte Schreibweise (IPv6) 407, 416 komprimierte Schreibweise (IPv6) 405, 409, 413 Kontext der Übereinstimmung einfügen 100 Kreditkarten-Nummern validieren 288 ksort() (Methode) in PHP 187 L Länge der Übereinstimmung ermitteln 149 lastindex (Eigenschaft) in JavaScript 152, 171 lastindex (Eigenschaft) in JavaScript (RegExp- Klasse) 316 Laufwerksbuchstaben aus Windows-Pfaden extrahieren 425 leere Rückwärtsreferenzen 321 Length (Eigenschaft) in.net 151 length() (Methode) in Ruby (MatchData-Klasse) 154 letztes Vorkommen von Zeilen speichern 326, 328 Line Feed 30 linker Kontext 100 List All (Button) in RegexBuddy 9 Liste aller Übereinstimmungen erhalten 162 literale Regexes im Quellcode 109 literalen Text finden 28 lokale Modus-Modifikatoren 30 Lookahead (siehe Lookaround) Lookaround 81, 261, 302 Bedingungen 89 einmalige Zeilen speichern 328 Lookbehind durch Lookahead simulieren 314, 315 negativer 83, 310, 312 Suchen nach Zahlen 344 Wörter in gewissem Abstand finden 323 Lookaround mit begrenzter Länge Index

18 Lookaround mit fester Anzahl 315 Lookaround mit unbegrenzter Länge 315 Lookbehind 82, 261, 302, 313, 344 (siehe auch Lookaround) Bedingungen 89 durch Lookahead simulieren 314, 315 mit einfangenden Gruppen nachstellen 86 negativer 83, 313 Luhn-Algorithmus 293 M (?m) Modus-Modifikator 43 m// (Operator) in Perl 136, 148 einfangende Gruppen 159 Maskieren 28 in Zeichenklassen 34 wie und wann ist es passend 337 Zeichen im Ersetzungstext 92 Match (Klasse) in.net Index und Length (Eigenschaften) 151 MatchAgain() (Methode) 170 NextMatch() (Methode) 170 match() (Methode) JavaScript (String-Klasse) 164 Ruby (Regexp-Klasse) 154 Match() (Methode) in.net 151 Groups (Eigenschaft) 157 Iterieren über Übereinstimmungen 169 Value (Eigenschaft) 146 MatchAgain() (Methode) in.net (Match- Klasse) 170 MatchData (Klasse) in Ruby 148 length() und size() (Methoden) 154 Matcher (Klasse) in Java 120 end() (Methode) 152 find() (Methode) 135, 147, 152, 164 group() (Methode) 158 Iterieren über Übereinstimmungen 170 reset() (Methode) 147 start() und end() (Methoden) 158 Matches() (Methode) in.net 163 MatchEvaluator (Klasse) in.net 196, 197 MatchObject (Klasse) in Python end() (Methoden) 153 groups() (Methode) 159 start() (Methoden) 153 MatchObject (Klasse) in Ruby begin() und end() (Methoden) 154 Match-Registerkarte (myregexp.com) 17 mathematische Regularität 2 maximale Wiederholung 72 mb_ereg-funktionen (PHP) 105 literale reguläre Ausdrücke 112 mehrzeilige Strings <p>-tags ergänzen 473 Zeilenanzahl validieren 265 Zeilenweise suchen 222 Metazeichen 28 in Zeichenklassen 33 Maskieren 337 Microsoft.NET (siehe.net-framework) Microsoft VBScript Scripting Library 108 Microsoft Windows-Pfade Aufteilen 420 Laufwerksbuchstaben extrahieren 425 Validieren 417 minimale Wiederholung 72 Modus-Modifikatoren 30 durch nicht-einfangende Gruppen angeben 63 MSIL 123 MULTILINE (Konstante) in Java 125 MULTILINE (Konstante, Regexp-Klasse) 127 Multiline (Option, RegexOptions) 125 Multiline-Modus 42, 43 Mustererkennungs-Operator (Java) 112 myregexp.com (Online) 15 N \n (Newline-Zeichen) 30 Kodieren in C# 111 Kodieren in Java 111 Kodieren in Python 114 wird nicht durch Punkt gefunden 38 Nachnamen umformatieren 285 Name/Wert-Paare, INI-Dateien 503 Namen umformatieren 285 Namen, XML 439 Finden 466 Namespace Identifiers (NIDs) 378 Namespace Specific String (NSS) 378 NEAR-Suchen (Wörter) 317 Negation in Zeichenklassen 34 negativer Lookaround 83, 310, 312, 313.NET-Framework 104 (siehe auch Group (Klasse) in.net, Match (Klasse) in.net, MatchEvaluator (Klasse) in.net, Regex (Klasse) in.net) Index 511

19 Ersetzungstext 7 Erstellen von Regex-Objekten 119 Regex-Optionen 125, 128 Regex-Unterstützung 4 new() (Methode) in Ruby 122, 127 Newline (\n) 30 Kodieren in C# 111 Kodieren in Java 111 Kodieren in Python 114 nicht durch Punkt zu finden 38 NextMatch() (Methode) in.net (Match-Klasse) 170 nicht zugewiesene Codepoints (Unicode) 51, 55 nicht-druckbare Zeichen 30 in C#-Quellcode 111 Kodieren in Python 114 nicht-einfangende Gruppen 63 Nicht-Whitespace-Zeichen, Anzahl begrenzen 262 Nordamerikanische Telefonnummern validieren 233 normalen Text nach HTML wandeln 473 nregex (Online) 13 Nullen aus Nummern entfernen 349 nummerische Zeichenreferenzen, HTML 437 O offset() (Methode) in Ruby (MatchData-Klasse) 154 Oniguruma-Bibliothek 5, 7, 105 Online-Tools 12 optionales Finden 71 Optionen für reguläre Ausdrücke setzen 123 Ordner, aus Windows-Pfaden extrahieren 427 P \P{ } für Unicode-Kategorien 51, 57 \p{ } für Unicode-Kategorien 49 Parameter von INI-Dateien 441 Pattern (Klasse) in Java 119 compile() (Methode) 111, 120, 125 Optionskonstanten 125, 128 reset() (Methode) 120 split() (Methode) 213 PatternSyntaxException (Exception) 120 PCRE (Perl-Compatible Regular Expressions)- Bibliothek 4, 105 Ersetzungstext 6 Perl (Sprache) (siehe auch m// (Operator) in Perl) Ersetzungstext 6 literale reguläre Ausdrücke 112 Regex-Bibliothek 116 Regex-Objekte erstellen 121 Regex-Optionen 126, 129 Regex-Unterstützung 4, 105 Pfad aus URL extrahieren 392 Pfade (UNC) extrahieren 426 Pfade (Windows) Aufteilen 420 Dateiendung extrahieren 431 Dateinamen extrahieren 430 Laufwerksbuchstaben extrahieren 425 Ordner extrahieren 427 Validieren 417 PHP (Sprache) XIII (siehe auch preg-funktionen, ereg-funktionen, mb_ereg-funktionen) 7 Ersetzungstext-Variante 7 literale reguläre Ausdrücke 112 Regex-Bibliothek importieren 116 Regex-Funktionen 105 Regex-Objekte erstellen 121 Regex-Optionen 126, 128 Pipe-Symbol (siehe vertikaler Balken ( )) Plus-Zeichen (+) für possessive Quantoren 76, 231 Ports aus URLs extrahieren 390 Position der Übereinstimmung ermitteln 149 positiver Lookahead 83 Wörter in gewisser Entfernung finden 323 positiver Lookbehind 82 POSIX-kompatible Regex-Engines 355 possessive Quantoren 76, 231 Postleitzahlen validieren Deutschland 283 Großbrittanien 282, 283 Kanada 282 USA (ZIP-Codes) 281 PowerGREP-Tool 21 PowerShell Scripting Language 107 PREG_OFFSET_CAPTURE (Konstante) 152, 159, 165 PREG_PATTERN_ORDER (Konstante) 165 PREG_SET_ORDER (Konstante) Index

20 PREG_SPLIT_DELIM_CAPTURE (Konstante) 220 PREG_SPLIT_NO_EMPTY (Konstante) 215, 220 preg-funktionen (PHP) literale reguläre Ausdrücke 112 preg_match() 136, 148, 165 Iterieren über Übereinstimmungen 172 preg_match_all() 164, 172 preg_matches() 165 preg_replace() 7, 105, 186 benannte Captures 193 mit Rückwärtsreferenzen 191 preg_replace_callback() 199 preg_split() 214 mit einfangenden Gruppen 220 Regex-Objekte erstellen 121 Regex-Optionen 126 Verfügbarkeit 116 Prüfsumme (ISBN) 274 Punkt (.) ein beliebiges Zeichen finden 38 Finden 231 Missbrauch 38 Punkt passt auf Zeilenumbruch (Option) 38, 123 Python (Sprache) (siehe auch MatchObject (Klasse) in Python, re-modul (Python)) Ersetzungstext 7 literale reguläre Ausdrücke 113 Regex-Bibliothek importieren 116 Regex-Objekte erstellen 121 Regex-Optionen 127, 129 Regex-Unterstützung 5, 105 Q \Q Token zum Unterdrücken von Metazeichen 29, 340 qr//-operator (Perl) 121 Quantoren 236 für fixe Wiederholungen 70 für unbegrenzte Wiederholungen 71 für variable Wiederholungen 70 verschachtelt 487 Quellcode, literale reguläre Ausdrücke in 109 Queries aus URLs extrahieren 396 Quote-Regex-Operator (Perl) 121 R \r (Carriage Return-Zeichen) 30 R Project 107 Rautezeichen (#) für Kommentare 90 Maskieren 340 Raw-Strings, Python 113 REALbasic (Sprache) 108 reanimator (Online) 17 rechter Kontext 100 Regex (Klasse) in.net IsMatch() (Methode) 135, 164 Match() (siehe Match() (Methode) in.net) Matches() (Methode) 163 Replace() (Methode) 184, 196, 197 mit Rückwärtsreferenzen 191 Split() (Methode) 211 mit Rückwärtsreferenzen 219 Regex() (Konstruktor) in.net 111, 119 RegexOptions (Enumeration für Parameter) 123, 125, 128 regex.larsolavtorvik.com (Online) 12 Regex-Bibliothek importieren 115 RegexBuddy-Tool 8 Regex-gesteuerte Engines 60 RegEx-Klasse (REALbasic) 108 Regex-Objekte erstellen 117 Regex-Optionen setzen 123 RegexOptions (Enumeration) 125, 128 Compiled (Wert) 123 RegExp (Klasse) in JavaScript exec() (Methode) 158 Iterieren über Übereinstimmungen 170 index (Eigenschaft) 152 lastindex (Eigenschaft) 152, 171, 316 test() (Methode) 136 Regexp (Klasse) in Ruby compile() (Methode) 122 match() (siehe match() (Methode), Ruby (Regexp-Klasse)) new() (Methode) 122, 127 RegExp() (Konstruktor) in JavaScript 121 Optionen 126 RegexPal-Tool 11 regexpr (Funktion), R Project 107 RegexRenamer-Tool 23 Regex-Tester 8 Desktop 18 grep-tools 21 Index 513

21 Online 12 RegexBuddy 8 RegexPal 11 Texteditoren 24 Regex-Tester für den Desktop 18 Regex-Tools 8 bekannte Texteditoren 24 Desktop 18 grep-tools 21 Online 12 RegexBuddy 8 RegexPal 11 Regex-Varianten 2 Reguläre Ausdrücke im Perl-Stil 3 Reguläre Ausdrücke, Definition 1 Regularität (mathematisch) 2 rekursive Übereinstimmung 180 relative Windows-Pfade 419, 423 re-modul (Python) 5, 105, 113 compile() (Funktion) 121 findall() (Methode) 166 finditer() (Methode) 172 group() (Methode) 159 importieren 116 Regex-Optionen 127, 129 search() (Funktion) 136, 148 split() (Methode) 216 mit einfangenden Gruppen 221 sub() (Methode) 188, 199 mit Rückwärtsreferenzen 191 replace() (Funktion), String (Klasse) in JavaScript 186 mit Rückwärtsreferenzen 191 Whitespace entfernen 334 Replace() (Methode) in.net 184, 196, 197 mit Rückwärtsreferenzen 191 replaceall() (Methode) in Java (String-Klasse) 186 mit Rückwärtsreferenzen 191 Replace-Button (RegexBuddy) 10 replacefirst() (Methode) in Java (String-Klasse) 186 mit Rückwärtsreferenzen 191 Replace-Registerkarte (myregexp.com) 17 reset() (Methode) in Java 120 reset() (Methode) in Java (Matcher-Klasse) 147 RFC 3986-Standard 382 RFC 4180-Standard 440 römische Zahlen 364 rubular (Online) 15 Ruby (Sprache) (siehe auch MatchData (Klasse) in Ruby, MatchObject (Klasse) in Ruby, Regexp (Klasse) in Ruby, String (Klasse) in Ruby Ersetzungstext 7 literale reguläre Ausdrücke 114 Regex-Bibliothek 116 Regex-Objekte erstellen 122 Regex-Optionen 127, 130 Regex-Unterstützung 5, 105 Rückwärtsreferenzen 64 auf nicht-vorhandene Gruppen 98 beim Aufteilen von Strings 217 benannte 69 benannte Captures für (siehe benannte Captures) leere verwenden 321 Teile der Übereinstimmung wieder einfügen 189 wiederholte Wörter finden 323 S \S Token 35, 231 \s Token 35, 262 (siehe auch Whitespace) s///-operator (Perl) 187 /e-modifikator 199 mit Rückwärtsreferenzen 191 Satzzeichen, Unicode-Kategorie 51 Scala, Regex-Unterstützung 108 scala.util.matching (Paket) 108 scan() (Methode) in Ruby (String-Klasse) 166, 173 Schemata aus URLs extrahieren 385 Schnittmenge von Zeichenklassen 36 Schreibweise Groß-/Kleinschreibung ignorieren 29, 231 Groß-/Kleinschreibung ignorieren in Zeichenklassen 35 Groß-/Kleinschreibung ignorieren, Option setzen 123 Schriftsysteme in Unicode 55 alle Zeichen aufführen 57 <script>-elemente (HTML) 436 search() (Funktion) in Python (re-modul) 136, Index

22 Sektionen von INI-Dateien 441 Sektionsblöcke finden 502 Sektionsüberschriften finden 500 Server aus UNC-Pfad extrahieren Bit-Zeichensatz 32 Singleline (Option, RegexOptions) 125 singleline-modus 38, 42, 123 size() (Methode) in Ruby (MatchData-Klasse) 154 Sozialversicherungsnummern validieren 271 span() (Methode) in Python (MatchObject- Klasse) 153 split() (Funktion) in Perl 215 mit einfangenden Gruppen 220 Split() (Methode) in.net 211 mit Rückwärtsreferenzen 219 split() (Methode) in Java 213 split() (Methode) in Java (String-Klasse) 213, 220 split() (Methode) in JavaScript (String-Klasse) 214 split() (Methode) in Python (re-modul) 216, 221 mit einfangenden Gruppen 221 Split-Button (RegexBuddy) 10 Split-Registerkarte (myregexp.com) 17 Sprachen, Unicode-Schriftsysteme 55 start() (Methode) in Java (Matcher-Klasse) 158 start()(methode) in Python (MatchObject- Klasse) 153 Stern (*) als Anker (Zusicherung) 235 für possessive Quantoren 231 gierig 73 Stern-Quantor 258 Steuerzeichen Maskierungsfolgen 30 Unicode-Kategorie 51 String (Klasse) in Java replaceall() und replacefirst() (Methoden) 186 mit Rückwärtsreferenzen 191 split() (Methode) 213, 220 String (Klasse) in JavaScript match() (Methode) 147, 164 replace() (Funktion) 186 mit Rückwärtsreferenzen 191 Whitespace entfernen 334 split() (Methode) 214 String (Klasse) in Ruby gsub() (Methode) 188, 200 mit Rückwärtsreferenzen 192 scan() (Methode) 166, 173 split() (Methode) 216, 221 Stringlänge überprüfen 260 Stringliterale 111 Strings als URLs validieren 367 als URNs validieren 377 Aufteilen 208 führenden und abschließenden Whitespace entfernen 333 Länge bei der Eingabe validieren 260 Metazeichen maskieren 337 wiederholten Whitespace entfernen 336 Strings in doppelten Anführungszeichen C# 111 Java 111 Perl 113 PHP 112 VB.NET 111 Strings in dreifachen Anführungszeichen (Python) 114 Strings in einfachen Anführungszeichen (PHP) 112 strip-funktion 333 strlen() (Funktion) 153 <strong>-tags, <b> ersetzen durch 459 <style>-elemente (HTML) 436 sub (Funktion), R Project 107 sub() (Methode) in Python (re-modul) 188, 199 mit Rückwärtsreferenzen 191 sub() Methode, re-modul 7 Substitutions-Operator, Java 112 Substitutions-Operator, Perl 187 Subtraktion in Zeichenklassen 36, 84 Suchen 331 (siehe auch Suchen und Ersetzen, Finden) nach Wörtern 301 aus einer Wortliste 304 außer ein bestimmtes Wort 310 gleiche Wörter 306 in der Nähe anderer Wörter 317 in Kommentaren in XML-Stil 488 nicht nach bestimmten Wörtern 313 nicht vor bestimmten Wörtern 312 vollständige Zeilen finden 330 Wiederholungen 323 Index 515

O'REILLY 8 Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo. Reguläre Ausdrücke Kochbuch. Jan Goyvaerts & Steven Levithan

O'REILLY 8 Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo. Reguläre Ausdrücke Kochbuch. Jan Goyvaerts & Steven Levithan Reguläre Ausdrücke Kochbuch Jan Goyvaerts & Steven Levithan Deutsche Übersetzung von Thomas Demmig O'REILLY 8 Beijing Cambridge Farnham Köln Sebastopol Taipei Tokyo Inhalt Vorwort XI 1 Einführung in reguläre

Mehr

Schritt für Schritt Reguläre Ausdrücke verstehen. Einstieg in. Reguläre Ausdrücke. Michael Fitzgerald O REILLY. Übersetzung von Thomas Demmig

Schritt für Schritt Reguläre Ausdrücke verstehen. Einstieg in. Reguläre Ausdrücke. Michael Fitzgerald O REILLY. Übersetzung von Thomas Demmig Schritt für Schritt Reguläre Ausdrücke verstehen Einstieg in Reguläre Ausdrücke O REILLY Michael Fitzgerald Übersetzung von Thomas Demmig Inhalt Vorwort.... 1 Was ist ein regulärer Ausdruck?... 1 Ein Anfang

Mehr

Reguläre Ausdrücke Kochbuch

Reguläre Ausdrücke Kochbuch Detaillierte Lösungen für acht Programmiersprachen Mit Einstiegs-Tutorial Reguläre Ausdrücke Kochbuch O Reilly Jan Goyvaerts & Steven Levithan Deutsche Übersetzung von Thomas Demmig Reguläre Ausdrücke

Mehr

Reguläre Ausdrücke Kochbuch

Reguläre Ausdrücke Kochbuch Detaillierte Lösungen für acht Programmiersprachen Mit Einstiegs-Tutorial Reguläre Ausdrücke Kochbuch O Reilly Jan Goyvaerts & Steven Levithan Deutsche Übersetzung von Thomas Demmig Reguläre Ausdrücke

Mehr

Michael Fitzgerald, Einstieg in Reguläre Ausdrücke, O Reilly, ISBN D3kjd3Di38lk323nnm

Michael Fitzgerald, Einstieg in Reguläre Ausdrücke, O Reilly, ISBN D3kjd3Di38lk323nnm D3kjd3Di38lk323nnm Michael Fitzgerald, Einstieg in Reguläre Ausdrücke, O Reilly, ISBN 97838689994029783868999402 Inhalt Vorwort.... 1 Was ist ein regulärer Ausdruck?... 1 Ein Anfang mit Regexpal... 2 Eine

Mehr

Inhalt. Vorwort... XI

Inhalt. Vorwort... XI Inhalt Vorwort......................................................... XI 1 Einführung in reguläre Ausdrücke...................................... 1 Definition regulärer Ausdrücke........................................

Mehr

Webengineering. Reguläre Ausdrücke. Dienstag, 2. Juli 13

Webengineering. Reguläre Ausdrücke. Dienstag, 2. Juli 13 Webengineering Reguläre Ausdrücke Marcel Vilas 1 DHBW - Stuttgart 1 RegExp - Allgemein Muster, die eine Menge von Zeichenketten mit Hilfe bestimmter syntaktischer Regeln beschreiben Werden oft als Suchmuster

Mehr

Empfehlenswerte Referenzen

Empfehlenswerte Referenzen Wenn Google etwas nicht finden kann, fragen sie Jack Bauer. ("Fakten über Jack Bauer") Inhalt Empfehlenswerte Referenzen...1 0 Wozu reguläre Ausdrücke?...1 1 Die Elemente regulärer Ausdrücke...2 2 Ein

Mehr

/ Vortrag Unix-AG

/ Vortrag Unix-AG 16.6.2010 / Vortrag Unix-AG xkcd Fortsetzung... Grundlegendes 1 Begriff: = regular expressions kurz: regex Funktion: definieren flexible Muster, mit denen in Texten gesucht (und ersetzt) werden kann. Diese

Mehr

Es gibt immer einen Schlüssel und einen zugehörigen Wert,

Es gibt immer einen Schlüssel und einen zugehörigen Wert, JSON JavaScript Object Notation Im Unternehmenskontext spielt der Austausch von Daten zwischen unterschiedlichen Systemen eine große Rolle. Dabei müssen oft Technologie und Zuständigkeitsgrenzen überwunden

Mehr

Reguläre Ausdrücke IDE AUTUMN SCHOOL

Reguläre Ausdrücke IDE AUTUMN SCHOOL Reguläre Ausdrücke 1 Reguläre Ausdrücke Übersicht Einführung Grundlagen Währenddessen: Übungen 2 Was sind Reguläre Ausdrücke? Reguläre Ausdrücke sind Zeichenketten, die Mengen von Zeichenketten beschreiben.

Mehr

Programmierkurs Kapitel 4

Programmierkurs Kapitel 4 Kapitel 4 Dipl.-Wirt.-Inf. Stefan Fleischer Dipl.-Wirt.-Inf. Ulrich Wolffgang Komponente: Parser Interface für Parser entwickeln public interface IParser { public ArrayList parseemailaddresses(string

Mehr

Reguläre Ausdrücke mit Java

Reguläre Ausdrücke mit Java Reguläre Ausdrücke mit Java Johannes Dyck, Thomas Schulz Projektseminar www.prominentpeople.info Gliederung 2 1. Grundlagen von regulären Ausdrücken 1. Aufbau 2. Zeichenklassen 3. Metazeichen 4. Quantoren

Mehr

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER Dirk Ammelburger XML Grundlagen der Sprache und Anwendungen in der Praxis HANSER r 1 Einleitung 2 1.1 Über dieses Buch 3 1.2 Für wen ist das Buch gedacht? 4 1.3 Wie ist das Buch aufgebaut? 5 1.4 Konventionen

Mehr

Proseminar UNIX Tools. Ferdinand Beyer

Proseminar UNIX Tools. Ferdinand Beyer Reguläre Ausdrücke Proseminar UNIX Tools Ferdinand Beyer Technische Universität München 08.11.2005 Ferdinand Beyer (TUM) Reguläre Ausdrücke 08.11.2005 1 / 39 Gliederung Allgemeines 1 Allgemeines 2 Notation

Mehr

Formale Sprachen und Automaten

Formale Sprachen und Automaten Formale Sprachen und Automaten Kapitel 3: Regular Expressions Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Kapitel 3 Regular

Mehr

Regular Expressions. Daniel Lutz Was ist eine Regular Expression?

Regular Expressions. Daniel Lutz Was ist eine Regular Expression? Regular Expressions Daniel Lutz 12.11.2003 1 Was ist eine Regular Expression? Ausdruck, der ein Textfragment beschreibt Eine Regular Expression passt zu einem Textfragment, wenn das Textfragment

Mehr

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

b{2} [^b]{2} Reguläre Ausdrücke als Hilfsmittel der Textanalyse Manuel Raaf Bayerische Akademie der Wissenschaften, IT-Referat

b{2} [^b]{2} Reguläre Ausdrücke als Hilfsmittel der Textanalyse Manuel Raaf Bayerische Akademie der Wissenschaften, IT-Referat b{2} [^b]{2} Reguläre Ausdrücke als Hilfsmittel der Textanalyse Manuel Raaf raaf@badw.de Bayerische Akademie der Wissenschaften, IT-Referat Reguläre Ausdrücke engl. regular expressions, kurz: regex, regexp

Mehr

Reguläre Ausdrücke. Felix Döring, Felix Wittwer 14. November Python-Kurs

Reguläre Ausdrücke. Felix Döring, Felix Wittwer 14. November Python-Kurs Reguläre Ausdrücke Felix Döring, Felix Wittwer 14. November 2016 Python-Kurs Gliederung 1. Grundlagen 2. Matching Regeln Sonderzeichen Zusammengesetzte Regex Spezielle Sequenzen 3. Methoden 4. reqular

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

Informationsextraktion Materialien zur Vorlesung

Informationsextraktion Materialien zur Vorlesung Vordefinierte Informationsextraktion Materialien zur Vorlesung Reguläre Ausdrücke D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg

Mehr

Linux II. Reguläre Ausdrücke Editoren Scripting. 2 Linux II. Linux I II III Res WN/TT NLTK XML Weka E Reguläre Ausdrücke Editoren Scripting

Linux II. Reguläre Ausdrücke Editoren Scripting. 2 Linux II. Linux I II III Res WN/TT NLTK XML Weka E Reguläre Ausdrücke Editoren Scripting Linux II 2 Linux II Reguläre Ausdrücke Editoren Scripting Reguläre Ausdrücke Reguläre Ausdrücke beschreiben eine Menge von Zeichenfolgen und werden benutzt um m festzustellen, ob eine Zeichenkette Teil

Mehr

18.09.2010 / Software Freedom Day

18.09.2010 / Software Freedom Day 18.09.2010 / Software Freedom Day xkcd Fortsetzung... Grundlegendes Begriff: = regular expressions kurz: regex Funktion: definieren flexible Muster, mit denen in Texten gesucht (und ersetzt) werden kann.

Mehr

Schritt für Schritt Reguläre Ausdrücke verstehen. Einstieg in. Reguläre Ausdrücke. Michael Fitzgerald O REILLY. Übersetzung von Thomas Demmig

Schritt für Schritt Reguläre Ausdrücke verstehen. Einstieg in. Reguläre Ausdrücke. Michael Fitzgerald O REILLY. Übersetzung von Thomas Demmig Schritt für Schritt Reguläre Ausdrücke verstehen Einstieg in Reguläre Ausdrücke O REILLY Michael Fitzgerald Übersetzung von Thomas Demmig Einstieg in Reguläre Ausdrücke Michael Fitzgerald Deutsche Übersetzung

Mehr

Inhaltsverzeichnis. Einleitung... 13. Text vom Benutzer erfragen... 22 Text über ein Dialogfeld erfragen... 23

Inhaltsverzeichnis. Einleitung... 13. Text vom Benutzer erfragen... 22 Text über ein Dialogfeld erfragen... 23 Inhaltsverzeichnis Einleitung............................................................................. 13 1 Texte und Textauswertungen........................................................ 17 Text

Mehr

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline. javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline. Inhalts-Verzeichnis 1. Allgemeine Richtlinien...1 1.1 Anzahl

Mehr

Vorwort Einführung in Power Query Erste Abfrage erstellen... 21

Vorwort Einführung in Power Query Erste Abfrage erstellen... 21 Vorwort... 11 1 Einführung in Power Query... 13 1.1 Power Query installieren und aktivieren... 13 1.2 Power Query aktivieren bzw. deaktivieren... 14 Was tun, wenn das Register nicht angezeigt wird... 16

Mehr

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke

JavaScript O'REILLY. Das umfassende Referenzwerk. Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke JavaScript Das umfassende Referenzwerk David Flanagan Deutsche Übersetzung von Ralf Kuhnert, Gisbert W. Selke & Harald Selke O'REILLY Cambridge Köln Paris Sebastopol Tokyo Vorwort xiii 1: Einführung in

Mehr

Grundlagen Internet-Technologien INF3171

Grundlagen Internet-Technologien INF3171 Fachbereich Informatik Informationsdienste Grundlagen Internet-Technologien INF3171 Cookies & Sessions Version 1.0 20.06.2016 aktuelles 2 Erweiterungen wir betrachten zwei Erweiterungen: Personalisierung

Mehr

Regular expressions for pros Reguläre Ausdrücke für Fortgeschrittene (Perl) Elena Neuburg

Regular expressions for pros Reguläre Ausdrücke für Fortgeschrittene (Perl) Elena Neuburg Regular expressions for pros Reguläre Ausdrücke für Fortgeschrittene (Perl) Elena Neuburg Inhaltsverzeichnis Definition Pattern Matching Greediness Eagerness Backtracking Nützliche Optionen Backreferences

Mehr

<Trainingsinhalt> Macromedia Dreamweaver 8 CS3

<Trainingsinhalt> Macromedia Dreamweaver 8 CS3 Macromedia Dreamweaver 8 CS3 inhaltsverzeichnis EINFÜHRUNG 1 Was werden Sie lernen? 3 Minimale Systemanforderungen: Macintosh 4 Minimale Systemanforderungen: Windows 5 LEKTION 1 DREAMWEAVER-GRUNDLAGEN

Mehr

Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf:

Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf: JavaScript - Inhalt 1. Objekte 2. Arrays 3. Callbacks 1)JavaScript Objekte Objekte haben eine eigene Notation, also Schreibweise, beim Aufruf: Eine Methode wird immer mit dem Namen des Objekts, einem Punkt

Mehr

HOSTED SHAREPOINT. Skyfillers Kundenhandbuch. Generell... 2. Online Zugang SharePoint Seite... 2 Benutzerpasswort ändern... 2

HOSTED SHAREPOINT. Skyfillers Kundenhandbuch. Generell... 2. Online Zugang SharePoint Seite... 2 Benutzerpasswort ändern... 2 HOSTED SHAREPOINT Skyfillers Kundenhandbuch INHALT Generell... 2 Online Zugang SharePoint Seite... 2 Benutzerpasswort ändern... 2 Zugriff & Einrichtung... 3 Windows... 3 Mac OS X... 5 Benutzer & Berechtigungen...

Mehr

Stream EDitor SED und Reguläre Ausdrücke

Stream EDitor SED und Reguläre Ausdrücke Stream EDitor SED und Reguläre Ausdrücke ExactCODE New Thinking Store 11. Mai 2006 Was ist SED? sed steht für Stream EDitor eine Variante des Unix Editors ed und arbeitet auf Streams keine interaktiven

Mehr

Reguläre Ausdrücke O'REILLT. Jeffrey E. E Eriedl. Deutsche Übersetzung von Andreas Karr er

Reguläre Ausdrücke O'REILLT. Jeffrey E. E Eriedl. Deutsche Übersetzung von Andreas Karr er Reguläre Ausdrücke Jeffrey E. E Eriedl Deutsche Übersetzung von Andreas Karr er O'REILLT Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo \ Vorwort von Jeffrey Friedl zur deutschen Übersetzung

Mehr

Reguläre Ausdrücke in Python

Reguläre Ausdrücke in Python Wintersemester 2009/2010 1 Metazeichen, Quantoren, Gruppierung 2 findall, finditer 3 sub, subn 4 split 5 Match Objects 6 greedy 7 Gruppen-Namen 8 Assertions Reguläre Ausdrücke Reguläre Ausdrücke Reguläre

Mehr

1.3.1 Java-Compiler installieren

1.3.1 Java-Compiler installieren 1 Java 1.3.1 Java-Compiler installieren Der Java-Compiler ist, wie auch die Java Virtual Machine, Teil des Java Development Kit (JDK) und kann kostenlos auf der Website von Oracle heruntergeladen werden.

Mehr

2. WWW-Protokolle und -Formate

2. WWW-Protokolle und -Formate 2. WWW-Protokolle und -Formate Inhalt: HTTP, allgemeiner syntaktischer Aufbau Wichtige Methoden des HTTP-Protokolls Aufbau von Web-Applikationen unter Nutzung von HTTP, HTML, DOM XML, XML-DTD und XML-Schema

Mehr

Python für Linguisten

Python für Linguisten Python für Linguisten Dozentin: Wiebke Petersen & Co-Dozentin: Esther Seyarth Fortgeschrittene Zeichenkettenverarbeitung mit regulären Ausdrücken Esther Seyarth Python 1 Motivation Wir haben bereits einige

Mehr

Inhalt. Vorbemerkungen... 1

Inhalt. Vorbemerkungen... 1 Vorbemerkungen...................................................... 1 1 Einleitung........................................................ 9 1.1 Statik und Dynamik............................................

Mehr

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

Mehr

Einführung in die Programmiertechnik

Einführung in die Programmiertechnik Einführung in die Programmiertechnik Formale Beschreibung von Programmiersprachen Lexikalische Regeln Definition von Wörtern (Lexem, Token) Gruppierung von Zeichen Lexikalische Kategorien: Klassen ähnlicher

Mehr

Inhalt Vorwort Mathematische Aufgaben

Inhalt Vorwort Mathematische Aufgaben v Inhalt Vorwort.... 1 Zielgruppe.... 2 Der Inhalt dieses Buches... 3 Die bestmögliche Nutzung dieses Buches.... 4 Das Begleitmaterial herunterladen.... 4 Den Code erstellen..........................................

Mehr

Einführung in die Programmierung mit VBA

Einführung in die Programmierung mit VBA Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen

Mehr

Scriptsprachen für dynamische Webauftritte

Scriptsprachen für dynamische Webauftritte Wolfgang Dehnhardt Scriptsprachen für dynamische Webauftritte JavaScript, VBScript, ASP, Perl, PHP, XML HANSER Inhalt Vorbemerkungen 1 1 Einleitung 9 1.1 Statik und Dynamik 9 1.2 Was sind Scriptsprachen?

Mehr

Programmierbüchlein Grundlagen der Programmierung. Rootgames

Programmierbüchlein Grundlagen der Programmierung. Rootgames Programmierbüchlein Grundlagen der Programmierung Rootgames Inhaltsverzeichnis Programmierbüchlein... 1 Inhaltsverzeichnis... 2 Einleitung... 3 Wie funktionieren Programmiersprachen?... 4 Programmiersprachen...

Mehr

Einführung in die Computerlinguistik Suche mit regulären Ausdrücken

Einführung in die Computerlinguistik Suche mit regulären Ausdrücken Einführung in die Computerlinguistik Suche mit regulären Ausdrücken Dozentin: Wiebke Petersen 9. Foliensatz Wiebke Petersen Einführung CL 1 Suche mit regulären Ausdrücken Suche nach allen Wortformen des

Mehr

Matthias-Claudius-Gymnasium Fachcurriculum Informatik

Matthias-Claudius-Gymnasium Fachcurriculum Informatik Klasse 8 (2-stündig) Grundlagen der Informatik Einführung in die Programmierung mit Scratch 10 Wochen Betriebssysteme - die Aufgaben eines Betriebssystems nennen. - Einstellungen des Betriebssystems in

Mehr

grep kurz & gut John Bambenek and Agnieszka Klus

grep kurz & gut John Bambenek and Agnieszka Klus grep kurz & gut grep kurz & gut John Bambenek and Agnieszka Klus Beijing Cambridge Farnham Köln Sebastopol Tokyo Copyright der deutschen Ausgabe 2009 by O'Reilly Verlag GmbH & Co.KG Darstellung eines

Mehr

Einführung in die Computerlinguistik Suche mit regulären Ausdrücken

Einführung in die Computerlinguistik Suche mit regulären Ausdrücken Einführung in die Computerlinguistik Suche mit regulären Ausdrücken Dozentin: Wiebke Petersen 9. Foliensatz Wiebke Petersen Einführung CL 1 Suche mit regulären Ausdrücken Suche nach allen Wortformen des

Mehr

Reguläre Ausdrücke - eine Einführung -

Reguläre Ausdrücke - eine Einführung - Ziel Reguläre Ausdrücke - eine Einführung - Andreas Romeyke Leipzig, Oktober/November 2002 Diese Präsentation ist eine kurze Einführung in die Welt der regulären Ausdrücke mit Schwerpunkt Perl. Die Präsentation

Mehr

Programmieren lernen mit Perl

Programmieren lernen mit Perl Xpert.press Programmieren lernen mit Perl Bearbeitet von Joachim Ziegler 1. Auflage 2002. Buch. XIV, 400 S. Hardcover ISBN 978 3 540 42685 1 Format (B x L): 15,5 x 23,5 cm Gewicht: 783 g Weitere Fachgebiete

Mehr

Prinzipien der Softwareentwicklung S. Strahringer

Prinzipien der Softwareentwicklung S. Strahringer Gliederung 1 Einführung Was ist ein Programm? Vorteile (und Nachteile) von PHP Erste PHP-Programme Ausführung von PHP-Programmen 2 Grundbegriffe der Programmierung Anweisungen, Variablen, Datentypen und

Mehr

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion 01 Einführung in PHP Einführung in PHP 1/13 PHP in Aktion PHP ist eine Programmiersprache, die ganz verschiedene Dinge tun kann: von einem Browser gesendete Formularinhalte auswerten, angepasste Webinhalte

Mehr

Tutorial XML3D + Blender

Tutorial XML3D + Blender Tutorial XML3D + Blender Deutsch - Windows ab XP- 2011 by SE V 0.1 Vorwort Diese kleine Tutorial entstand aus dem Problem das es aktuell noch kein Deutsches gibt. Ich versuche alles so zu erklären, das

Mehr

PHP objektorientiert

PHP objektorientiert PHP objektorientiert Konzepte, Techniken, Code von Jörg Krause, Christian Alkemper, Peter Lavin 1. Auflage Hanser München 2006 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 40762 6 Zu Inhaltsverzeichnis

Mehr

Inhalt 6 Vorwort 10 1 Warum Perl? 12 2 Grundlagen Variablen Spezial-Variablen Kontext Wahrheitswert 18 3 Skalare 20 3.

Inhalt 6 Vorwort 10 1 Warum Perl? 12 2 Grundlagen Variablen Spezial-Variablen Kontext Wahrheitswert 18 3 Skalare 20 3. Inhalt 6 Vorwort 10 1 Warum Perl? 12 2 Grundlagen 14 2.1 Variablen 14 2.2 Spezial-Variablen 16 2.3 Kontext 16 2.4 Wahrheitswert 18 3 Skalare 20 3.1 Zahlen 20 3.2 Operatoren 24 3.3 Mathematische Funktionen

Mehr

Informationen zur Verwendung von Visual Studio und cmake

Informationen zur Verwendung von Visual Studio und cmake Inhaltsverzeichnis Informationen zur Verwendung von Visual Studio und cmake...2 Erste Schritte mit Visual Studio...2 Einstellungen für Visual Studio 2013...2 Nutzung von cmake...5 Installation von cmake...5

Mehr

1 Was ist XML? Hallo XML! Kommentare in XML 52

1 Was ist XML? Hallo XML! Kommentare in XML 52 Inhalt Vorwort 13 Einleitung und Ziel des Buches 15 1 Was ist XML? 21 1.1 XML ein Definitionsversuch 21 1.2 XML und HTML wo sind die Unterschiede? 22 1.3 XSLT 24 1.4 Einsatzgebiete von XML und XSLT 25

Mehr

Ferdinand Beyer. 1 Allgemeines Beschreibung Bezeichnungen Einsatzgebiete in UNIX-Tools Notationsarten...

Ferdinand Beyer. 1 Allgemeines Beschreibung Bezeichnungen Einsatzgebiete in UNIX-Tools Notationsarten... Reguläre Ausdrücke Ferdinand Beyer Inhaltsverzeichnis 1 Allgemeines 2 1.1 Beschreibung............................. 2 1.2 Bezeichnungen............................ 2 1.3 Einsatzgebiete in UNIX-Tools....................

Mehr

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3 Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................

Mehr

Propädeutikum Programmierung in der Bioinformatik

Propädeutikum Programmierung in der Bioinformatik Propädeutikum Programmierung in der Bioinformatik Java Reguläre Ausdrücke und PROSITE-Patterns Thomas Mauermeier 04.12.2018 Ludwig-Maximilians-Universität München Warum Reguläre Ausdrücke? Regulärer Ausdruck

Mehr

Python 3.6. Erste Schritte auf dem Mac. Syshack. 22. Juni 2017 Version 2.0. Python Erste Schritte auf dem Mac Syshack, 22.

Python 3.6. Erste Schritte auf dem Mac. Syshack. 22. Juni 2017 Version 2.0. Python Erste Schritte auf dem Mac Syshack, 22. Python 3.6 Erste Schritte auf dem Mac Syshack 22. Juni 2017 Version 2.0 Seite 1 / 12 1 Installation Für die Installation von Python muss man das Installationspaket für Mac OS X von der Python Projekt Webseite

Mehr

Einführung in PERL 2 Reguläre Ausdrücke

Einführung in PERL 2 Reguläre Ausdrücke Einführung in PERL 2 Reguläre Ausdrücke BASIEREND AUF FOLIEN VON DR. H. ZINSMEISTER und dem Buch `Einführung in Perl (Lama Buch) von RL Schwartz&T Phoenix sowie hwp://de.sel[tml.org/perl/sprache/regexpr.htm

Mehr

Um Ihren neuen»counter«(besucherzähler) auf einer Webseite zu installieren, benötigen Sie folgenden HTML-Code:

Um Ihren neuen»counter«(besucherzähler) auf einer Webseite zu installieren, benötigen Sie folgenden HTML-Code: Anleitung zum Counter Beim Kopieren der Code-Beispiele in dieser Anleitung ist die beispielhafte Counter-ID 0000000000 durch die eigene zehnstellige Counter-ID des jeweiligen Zählers zu ersetzen. Einbau

Mehr

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme? Liebe Leserin, lieber Leser 10 Kapitel i: Schnelleinstieg 13 Kapitel 2: Was sind Programme? 17 Was ist ein Programm? 18 Sprechen Sie Computer? 18 Von der Idee zum Programm 19 Von Windows, Fenstern und

Mehr

Arbeiten mit Regulären Ausdrücken. Annette Gerstenberg Würzburg, 16. März 2016 Workshop "Digitale Methoden" beim Forum Junge Romanistik

Arbeiten mit Regulären Ausdrücken. Annette Gerstenberg Würzburg, 16. März 2016 Workshop Digitale Methoden beim Forum Junge Romanistik Arbeiten mit Regulären Ausdrücken Annette Gerstenberg Würzburg, 16. März 2016 Workshop "Digitale Methoden" beim Forum Junge Romanistik Warum RegEx? Ziele! Beispiel 1: Bereinigen eines Transkripts, Entfernen

Mehr

ÜBUNGS-BLOCK 7 LÖSUNGEN

ÜBUNGS-BLOCK 7 LÖSUNGEN ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i

Mehr

Informationen zur Verwendung von Visual Studio und cmake

Informationen zur Verwendung von Visual Studio und cmake Inhaltsverzeichnis Informationen zur Verwendung von Visual Studio und cmake... 2 Erste Schritte mit Visual Studio... 2 Einstellungen für Visual Studio 2013... 2 Nutzung von cmake... 6 Installation von

Mehr

Eine praktische Einführung in die Programmierung mit der Programmiersprache C

Eine praktische Einführung in die Programmierung mit der Programmiersprache C Eine praktische Einführung in die Programmierung mit der Programmiersprache C www.c-howto.de C-HowTo www.c-howto.de Inhaltsverzeichnis 1 Einführung.. 10 1:1 Wozu Programmieren? 10 1.2 Was ist ein Programm?

Mehr

1 Ein erster Überblick 3

1 Ein erster Überblick 3 xiii I Grundlagen 1 Ein erster Überblick 3 1.1 CSS im Zusammenhang........................................3 1.2 Der eigentliche Zweck von CSS.................................4 1.3 Warum die meisten Tabellen

Mehr

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren... Datei: 5220_A02Inhalt.doc, Seite3 15. September 2010 Teil I Erste Schritte 1 Einleitung.... 9 1.1 Was Sie erwartet und was Sie nicht erwartet.... 9 1.2 Wie die Kapitel aufgebaut sind.... 10 1.3 Beispieldateien....

Mehr

Webdesign mit HTML und CSS Einführungsabend

Webdesign mit HTML und CSS Einführungsabend Einführungsabend Die eigene Internetseite Hypertext und html Das HTML Grundgerüst HTML-Editoren Skriptsprachen im WWW Rechtliche Absicherung Suchmaschinenoptimierung Das HTML Grundgerüst HTML ist ein Kompromiss

Mehr

Einleitung Erste Abfrage erstellen...2

Einleitung Erste Abfrage erstellen...2 Einleitung...7 1 Einführung in Power Query... 11 1.1 Power Query installieren und aktivieren... 11 1.2 Power Query aktivieren bzw. deaktivieren... 12 Was tun, wenn das Register nicht angezeigt wird...

Mehr

Stand und Ausblick

Stand und Ausblick Stand und Ausblick Einführung: 26.04.2017, 16.00 Uhr (c.t.), PC Pool Übung: 03.05.2017, 16.00 Uhr, PC Pool Übung: 10.05.2017, 16.00 Uhr, HS 020 Übung:, 16.00 Uhr, HS 020 Übung: 21.06.2017, 16.00 Uhr, HS

Mehr

Grundlagen Internet-Technologien INF3171

Grundlagen Internet-Technologien INF3171 Grundlagen Internet-Technologien INF3171 ekaay AJAX Version 1.0 01.07.2013 aktuelles 2 Ajax: zunächst Abkürzung für Asynchronous JavaScript And XML Jesse J. Garrett (AdaptivePath) http://www.adaptivepath.com/publications/essays/archives/

Mehr

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs Grundlagen Felix Döring, Felix Wittwer 24. April 2017 Python-Kurs Gliederung 1. Über diesen Kurs 2. Der Python Interpreter 3. Python Scripte 4. Grundlagen der Sprache 5. Das erste Programm 6. Operatoren

Mehr

Theoretische Informatik. Reguläre Sprachen und Automaten

Theoretische Informatik. Reguläre Sprachen und Automaten Theoretische Informatik Reguläre Sprachen und Automaten Reguläre Sprachen Reguläre Ausdrücke und Sprachen Gleichungen Syntaxdiagramme Erweiterungen Anwendungen Reguläre Ausdrücke über Σ Syntax: Konstante

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 07: Parsen Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 32 Inhalt Vorlesungsüberblick

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

Kurzeinführung in XML. Was ist XML? Well-formed u. gültiges XML Erste Anwendung in XML Externe DTD Attribute und Entities Datenausgabe mit XSL

Kurzeinführung in XML. Was ist XML? Well-formed u. gültiges XML Erste Anwendung in XML Externe DTD Attribute und Entities Datenausgabe mit XSL Kurzeinführung in XML Was ist XML? Well-formed u. gültiges XML Erste Anwendung in XML Externe DTD Attribute und Entities Datenausgabe mit XSL Was ist XML? XML steht für Extensible Markup Language XML ist

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Spezifikationen für die Nutzung der Webanwendung (inkl. CSV/TXT-Datei) für Antragsteller von SSR-Nummern

Spezifikationen für die Nutzung der Webanwendung (inkl. CSV/TXT-Datei) für Antragsteller von SSR-Nummern Spezifikationen für die Nutzung der Webanwendung (inkl. CSV/TXT-Datei) für Antragsteller von SSR-Nummern Vorgeschriebener Zeichensatz für die Webanwendung... 1 Verwendung von CSV/TXT-Dateien... 2 Erlaubte

Mehr

Fehlende Input-Filterung. Klaus Kusche

Fehlende Input-Filterung. Klaus Kusche Fehlende Input-Filterung Klaus Kusche Grund-Problem Benutzer-Eingaben (= meist Eingaben in Web-Formularen, aber auch Commandline- oder Dialog-Inputs, Dateien und Netz-Requests,...) werden nicht gefiltert

Mehr

Inhalt. Teil I: Der Sprachkern von JavaScript

Inhalt. Teil I: Der Sprachkern von JavaScript Inhalt Vorwort.... 1 Einführung in JavaScript... 1 1.1 Der JavaScript-Sprachkern... 4 1.2 Clientseitiges JavaScript... 9 Teil I: Der Sprachkern von JavaScript 2 Die lexikalische Struktur... 21 2.1 Zeichensatz...

Mehr

Wiederholung. Ein deterministischer endlicher Automat (DEA) über einem Alphabet A besteht aus: einer endlichen Menge von Zuständen Q,

Wiederholung. Ein deterministischer endlicher Automat (DEA) über einem Alphabet A besteht aus: einer endlichen Menge von Zuständen Q, Wiederholung Ein deterministischer endlicher Automat (DEA) über einem Alphabet A besteht aus: einer endlichen Menge von Zuständen Q, einem Anfangszustand q 0 Q, einer Menge von Endzuständen Q E Q, einer

Mehr

Thomas Theis PHP4. Webserver-Programmierung für Um- und Einsteiger. Galileo Press

Thomas Theis PHP4. Webserver-Programmierung für Um- und Einsteiger. Galileo Press Thomas Theis PHP4 Webserver-Programmierung für Um- und Einsteiger Galileo Press Inhalt Einführung 11 A.1 PHP-eine Beschreibung 11 A.2 Wie lerne ich PHP? 11 A.2.1 Grundlagen 12 A.2.2 Formulare und Datenbanken

Mehr

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)

Beispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) Beispiel Beispiel: Namensliste konvertieren (Karl Egon Meier Meier, Karl Egon). s/(.*) (.*)/$2, $1/; Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) s/(.*) (.*)/$2, $1/; s/(.*) ([a-z]+

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Inhaltsverzeichnis Einleitung xi Kapitel 1: Die Vorbereitung aufs Abenteuer

Inhaltsverzeichnis Einleitung xi Kapitel 1: Die Vorbereitung aufs Abenteuer Inhaltsverzeichnis Einleitung Warum man programmieren können sollte.... xi Warum Python?.... xii Und warum Minecraft?... xii Was du in diesem Buch findest... xiii Online-Ressourcen....xv Möge das Abenteuer

Mehr

Grundlagen Internet-Technologien. Serverseitige Web-Programmierung mit CGI, Teil II: Perl im Web Version 1.11

Grundlagen Internet-Technologien. Serverseitige Web-Programmierung mit CGI, Teil II: Perl im Web Version 1.11 Serverseitige Web-Programmierung mit CGI, Teil II: Perl im Web Version 1.11 31.5.2010 1 aktuelles twitter: Mikroblogging seit 2006 typischer Dienst für Web 2.0 eigene twitter-api Nutzung in Massenmedien,

Mehr

Inhalt. Seite 1 von 14

Inhalt. Seite 1 von 14 Seite 1 von 14 Inhalt 1. Php ansprechen... 2 2. html... 3 3. Weitere Formatierungen in html... 5 4. Tabellen mit html... 6 a. Grundstrukturen... 6 b. Tabellen formatieren... 11 Seite 2 von 14 1. Php ansprechen

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

GREP. Reguläre Ausdrücke. GREP Hardcore. Syntax. Ersetzen Suchen. Look Around. 20. April 2012 Pubkon 2013

GREP. Reguläre Ausdrücke. GREP Hardcore. Syntax. Ersetzen Suchen. Look Around. 20. April 2012 Pubkon 2013 GREP Syntax Reguläre Ausdrücke Look Around Ersetzen Suchen GREP Hardcore 20. April 2012 Pubkon 2013 Kontakt: Folien: gregor.fellenz@publishingx.de http://www.publishingx.de/dokumente Lizenz: c b n Quelle:

Mehr

Programmieren lernen in ASP.NET mit C#

Programmieren lernen in ASP.NET mit C# Programmieren lernen in ASP.NET mit C# von Patrick A. Lorenz, Christoph A. Müller 1. Auflage Hanser München 2003 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 22311 0 Zu Leseprobe schnell und

Mehr