SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Einführung in RegEx
Florian Elbers
Definition und Nutzen
▪ Reguläre Ausdrücke (Englisch: regular
expressions, abgekürzt RegExp oder
Regex) bezeichnen genau definierte
Suchmuster, mit deren Hilfe sich in einer
Zeichenkette bestimmte Inhalte suchen
und bei Bedarf ersetzen lassen
▪ z. B.: „Suche nach allen Wörtern, die mit
einem großen D anfangen und mehr als
drei Buchstaben enthalten“
▪ => RegEx ersparen viel Arbeit und Zeit
▪ => RegEx erweitern den eigenen
Handlungsspielraum
Wann brauchen wir RegEx?
▪ Validierung und Filterung von Benutzereingaben, z. B. Spamfilter
▪ Durchsuchen von großen Datenmengen
▪ Aufteilung von Textdaten
▪ Konkretisieren von Abfragen, z. B. in Google Analytics
▪ uvm.
Was können Muster sein?
▪ Deutsche Postleitzahlen: D-27321
▪ D gefolgt von Bindestrich/Leerzeichen
▪ gefolgt von 5 Ziffern
▪ ISBN-Nummer: 978-3-442-54631-2
▪ 3 Ziffern (entweder 978 oder 979)
▪ gefolgt von einem Bindestrich
▪ gefolgt von 1 bis 5 Ziffern …
▪ Emailadresse: jemand@irgendwo.de
▪ Zeichenfolge gefolgt von @
▪ gefolgt von Zeichenfolge
▪ gefolgt von Punkt
▪ gefolgt von Zeichenfolge
Wie sieht so eine RegEx aus?
▪ copy *.doc c:temp
▪ /D{4}d{4}.tif/gi
▪ ^[+-]?(d+.d+|d+.|.d+|d+)([eE]
[+-]?d+)?$
▪ ^[a-zA-Z0-9][w.-]*@(?:[a-zA-Z0-9]
[a-zA-Z0-9_-]+.)+[A-Z,a-z]{2,5}$
Mit welchen Tools führt man ReGex aus?
▪ Textwrangler (Mac)
▪ Sublime Text (Mac)
▪ Notepad++ (Windows)
▪ VIM (Unix/Terminal)
▪ uvm.
Metazeichen
▪ . beliebiges Zeichen
▪ ^ (Zeilen-)Anfang
▪ $ (Zeilen-)Ende
▪ | Alternative
▪ ( … ) Subpattern
▪ [ … ] Zeichenklassen
▪ * + ? { n,m } Quantoren
▪  Aufheben der Meta- Eigenschaften
▪ .
▪ ^
▪ $
▪ …
Übersicht
Zeichenklassen
▪ Eckige Klammern finden in regulären Ausdrücken
Verwendung um eine Zeichenauswahl festzulegen
▪ [abc] Buchstabe a,b oder c
▪ [a-zA-Z0-9] alphanumerisches Zeichen
▪ [^a-zA-Z0-9] alles außer alphanumerischem Zeichen
▪ Vordefinierte Zeichenklassen
▪ d Zahl
▪ D keine Zahl
▪ w Wort
▪ W kein Wort
▪ s Whitespace
▪ s kein Whitespace
▪ t Tabulator
▪ r Zeilenumbruch
Typen
Quantoren
▪ Quantoren bzw. geschweifte Klammern dienen in
regulären Ausdrücken dazu eine Anzahl
festzulegen, also wie oft ein bestimmtes Zeichen
oder ein erlaubter Zeichenbereich vorkommen darf,
oder muss
▪ ? vorang. Ausdruck optional {0,1}
▪ + vorang. Ausdruck mindestens einmal {1,}
▪ * vorang. Ausdruck beliebig oft {0,}
▪ { min , max }
▪ { n } vor. Ausdruck exakt n-mal
▪ {, max } vor. Ausdruck maximal max-mal
▪ { min ,} vor. Ausdruck mindestens min-mal
Typen
Einstiegsbeispiel
▪ ^D[a-z]*i$
▪ Dieser reguläre Ausdruck ist wie folgt zu verstehen:
▪ ^ steht für den Beginn des Strings, d. h. der String muss mit einem großen D beginnen (keine Zeichen davor)
▪ $ steht für das Ende des Strings, es dürfen also keine Zeichen hinter dem kleinen i kommen.
▪ Innerhalb der eckigen Klammern wird eine Zeichengruppe angegeben, in diesem Beispiel sind alle Zeichen von a bis z (in
Kleinbuchstaben) erlaubt
▪ Das Sternchen (*) steht für beliebiges Vorkommen des zuvor definierten Wertes. In unserem Beispiel darf also nach dem
großen D beliebig oft ein Zeichen aus der Menge a bis z vorkommen.
▪ Welche Eingaben sind damit erlaubt?
▪ DelphiXE - Nein, weil der String mit einem kleinen i enden muss
▪ Del-phi - Nein, weil zwischen D und i nur Kleinbuchstaben stehen dürfen und keine Bindestriche
▪ Delphi - korrekt
Weitere Einstiegsbeispiele
▪ Leerzeilen löschen:
▪ r+ durch r ersetzen
▪ Datum umformatieren:
▪ 01.02.1900 zu 1900-02-01
▪ (d{2}).(d{2}).(d{4}) durch 3-2-1 ersetzen
▪ Bestimmte Dateien aus der Liste löschen:
▪ *.(jpg|jpeg|css|js)
▪ Liste von AuBi-Artikel-URLs => ID rausfiltern
▪ http://www.autobild.de/artikel/fahrbericht-mercedes-benz-s-320-cdi-53622.html
▪ ^(.*?)-(d+).html ersetzen mit 2
Einfache Beispiele
.*
Einfache Beispiele
.*
Jedes beliebige Zeichen
Einfache Beispiele
.*
Jedes beliebige Zeichen
Beliebig oft (auch kein-mal)
Einfache Beispiele – Alternative
(F|Ph)antasie
Text:
„Phantasie kann man auch Fantasie schreiben, aber nicht Fantasy.“
Einfache Beispiele – Alternative
(F|Ph)antasie
Text:
„Phantasie kann man auch Fantasie schreiben, aber nicht Fantasy.“
Einfache Beispiele – Quantoren
auto-{0,1}bild
auto-?bild
Text:
autobild
auto bild
auto-bild
Einfache Beispiele – Quantoren
auto-{0,1}bild
auto-?bild
Text:
autobild
auto bild
auto-bild
Einfache Beispiele – Zeichenklassen
[KP-R]omma
Text:
Ohne Punkt und Komma
Ohne Punkt und Pomma
Ohne Punkt und Qomma
Ohne Punkt und Romma
Ohne Punkt und Somma
Einfache Beispiele – Zeichenklassen
[KP-R]omma
Text:
Ohne Punkt und Komma
Ohne Punkt und Pomma
Ohne Punkt und Qomma
Ohne Punkt und Romma
Ohne Punkt und Somma
Einfache Beispiele – Negation mit Zirkumflex
[^K]omma
Text:
Ohne Punkt und Komma
Ohne Punkt und Pomma
Ohne Punkt und Qomma
Ohne Punkt und Romma
Ohne Punkt und Somma
Einfache Beispiele – Negation mit Zirkumflex
[^K]omma
Text:
Ohne Punkt und Komma
Ohne Punkt und Pomma
Ohne Punkt und Qomma
Ohne Punkt und Romma
Ohne Punkt und Somma
Einfache Beispiele – Zeichenklassen
d+.d+.d+
Text:
11. Dezember 1980
4.10.1999
04/09/1979
01.02.2013
Einfache Beispiele – Zeichenklassen
d+.d+.d+
Text:
11. Dezember 1980
4.10.1999
04/09/1979
01.02.2013
Einfache Beispiele – Postleitzahlen
^[0-9]{5}$
Text:
22767 Hamburg
1234
20251
Einfache Beispiele – Postleitzahlen
^[0-9]{5}$
Text:
22767 Hamburg
1234
20251
Einfache Beispiele – Postleitzahlen
^[0-9]{5}$
Nur komplette Zeile
Einfache Beispiele – Postleitzahlen
^[0-9]{5}$
Nur komplette Zeile
Ziffern von 0 bis 9
Einfache Beispiele – Postleitzahlen
^[0-9]{5}$
Nur komplette Zeile
Ziffern von 0 bis 9
Genau 5 Stück
Einfache Beispiele – HTML-Tags
<title>(.*?)</title>
Text:
<title>COMPUTER BILD: Tests, Downloads, Ratgeber & Kurse</title>
<title class=„title“>COMPUTER BILD: Tests, Downloads, Ratgeber & Kurse</title>
<title><b>COMPUTER BILD: Tests, Downloads, Ratgeber & Kurse</b></title>
Einfache Beispiele – HTML-Tags
<title>(.*?)</title>
Text:
<title>COMPUTER BILD: Tests, Downloads, Ratgeber & Kurse</title>
<title class=„title“>COMPUTER BILD: Tests, Downloads, Ratgeber & Kurse</title>
<title><b>COMPUTER BILD: Tests, Downloads, Ratgeber & Kurse</b></title>
Fortgeschrittene Beispiele
http://www.computerbild.de/sitemap-
glossar.xml
To Do:
Bekommen aller Keywords der Glossarseiten aus den URLs
Fortgeschrittene Beispiele
http://www.computerbild.de/sitemap-
glossar.xml
To Do:
Bekommen aller Keywords der Glossarseiten aus den URLs
^http://www.computerbild.de/glossar/(.*?)-d+.html ersetzen durch 1
Wer mehr über RegEx wissen möchte
▪ http://www.mediaevent.de/javascript/
Javascript-Regulaere-Ausdruecke-
1.html
▪ http://www.danielfett.de/internet-und-
opensource,artikel,regulaere-
ausdruecke
▪ http://www.regenechsen.de/phpwcm
s/index.php?id=4,0,0,1,0,0
▪ http://regexcrossword.com/

Weitere ähnliche Inhalte

Andere mochten auch

The Power of Regular Expression: use in notepad++
The Power of Regular Expression: use in notepad++The Power of Regular Expression: use in notepad++
The Power of Regular Expression: use in notepad++
Anjesh Tuladhar
 
Cita de un experto
Cita de un expertoCita de un experto
Cita de un experto
Ana Villa
 
Wir kehren gruendlich_faltblatt_ippnw
Wir kehren gruendlich_faltblatt_ippnwWir kehren gruendlich_faltblatt_ippnw
Wir kehren gruendlich_faltblatt_ippnw
metropolsolar
 
Innovationsmanagement auf SharePoint 2010
Innovationsmanagement auf SharePoint 2010Innovationsmanagement auf SharePoint 2010
Innovationsmanagement auf SharePoint 2010
IPI GmbH
 
Facebook Deals - Informationen für Unternehmen
Facebook Deals - Informationen für UnternehmenFacebook Deals - Informationen für Unternehmen
Facebook Deals - Informationen für Unternehmen
Norman Kaulfuß
 
Combinar correspondencia :3
Combinar correspondencia :3Combinar correspondencia :3
Combinar correspondencia :3
cristian567
 
El mundo de la tecnologia
El mundo de la tecnologiaEl mundo de la tecnologia
El mundo de la tecnologia
isabella1999
 
Coincidencia o-creacion
Coincidencia o-creacionCoincidencia o-creacion
Coincidencia o-creacion
Mario Góngora
 

Andere mochten auch (20)

Syntax
SyntaxSyntax
Syntax
 
Andrei's Regex Clinic
Andrei's Regex ClinicAndrei's Regex Clinic
Andrei's Regex Clinic
 
The Power of Regular Expression: use in notepad++
The Power of Regular Expression: use in notepad++The Power of Regular Expression: use in notepad++
The Power of Regular Expression: use in notepad++
 
Regular Expression
Regular ExpressionRegular Expression
Regular Expression
 
Sebas blog
Sebas blogSebas blog
Sebas blog
 
Cita de un experto
Cita de un expertoCita de un experto
Cita de un experto
 
Wir kehren gruendlich_faltblatt_ippnw
Wir kehren gruendlich_faltblatt_ippnwWir kehren gruendlich_faltblatt_ippnw
Wir kehren gruendlich_faltblatt_ippnw
 
Innovationsmanagement auf SharePoint 2010
Innovationsmanagement auf SharePoint 2010Innovationsmanagement auf SharePoint 2010
Innovationsmanagement auf SharePoint 2010
 
agenturexcellence-Termine 28. Durchgang
agenturexcellence-Termine 28. Durchgangagenturexcellence-Termine 28. Durchgang
agenturexcellence-Termine 28. Durchgang
 
Social Media Marketing - Wirtschaftsrat Stuttgart 15.05.2012
Social Media Marketing - Wirtschaftsrat Stuttgart 15.05.2012Social Media Marketing - Wirtschaftsrat Stuttgart 15.05.2012
Social Media Marketing - Wirtschaftsrat Stuttgart 15.05.2012
 
Facebook Deals - Informationen für Unternehmen
Facebook Deals - Informationen für UnternehmenFacebook Deals - Informationen für Unternehmen
Facebook Deals - Informationen für Unternehmen
 
Einführung in die Tagebücher von Max Frisch
Einführung in die Tagebücher von Max FrischEinführung in die Tagebücher von Max Frisch
Einführung in die Tagebücher von Max Frisch
 
Seminartermine
SeminartermineSeminartermine
Seminartermine
 
Combinar correspondencia :3
Combinar correspondencia :3Combinar correspondencia :3
Combinar correspondencia :3
 
Web Agentur Körbler
Web Agentur KörblerWeb Agentur Körbler
Web Agentur Körbler
 
El mundo de la tecnologia
El mundo de la tecnologiaEl mundo de la tecnologia
El mundo de la tecnologia
 
Presentacion
PresentacionPresentacion
Presentacion
 
Lenguaje y comunicacion
Lenguaje y comunicacionLenguaje y comunicacion
Lenguaje y comunicacion
 
Coincidencia o-creacion
Coincidencia o-creacionCoincidencia o-creacion
Coincidencia o-creacion
 
Sistemas de calidad 1
Sistemas de calidad 1Sistemas de calidad 1
Sistemas de calidad 1
 

Einführung in RegEx

  • 2. Definition und Nutzen ▪ Reguläre Ausdrücke (Englisch: regular expressions, abgekürzt RegExp oder Regex) bezeichnen genau definierte Suchmuster, mit deren Hilfe sich in einer Zeichenkette bestimmte Inhalte suchen und bei Bedarf ersetzen lassen ▪ z. B.: „Suche nach allen Wörtern, die mit einem großen D anfangen und mehr als drei Buchstaben enthalten“ ▪ => RegEx ersparen viel Arbeit und Zeit ▪ => RegEx erweitern den eigenen Handlungsspielraum
  • 3. Wann brauchen wir RegEx? ▪ Validierung und Filterung von Benutzereingaben, z. B. Spamfilter ▪ Durchsuchen von großen Datenmengen ▪ Aufteilung von Textdaten ▪ Konkretisieren von Abfragen, z. B. in Google Analytics ▪ uvm.
  • 4. Was können Muster sein? ▪ Deutsche Postleitzahlen: D-27321 ▪ D gefolgt von Bindestrich/Leerzeichen ▪ gefolgt von 5 Ziffern ▪ ISBN-Nummer: 978-3-442-54631-2 ▪ 3 Ziffern (entweder 978 oder 979) ▪ gefolgt von einem Bindestrich ▪ gefolgt von 1 bis 5 Ziffern … ▪ Emailadresse: jemand@irgendwo.de ▪ Zeichenfolge gefolgt von @ ▪ gefolgt von Zeichenfolge ▪ gefolgt von Punkt ▪ gefolgt von Zeichenfolge
  • 5. Wie sieht so eine RegEx aus? ▪ copy *.doc c:temp ▪ /D{4}d{4}.tif/gi ▪ ^[+-]?(d+.d+|d+.|.d+|d+)([eE] [+-]?d+)?$ ▪ ^[a-zA-Z0-9][w.-]*@(?:[a-zA-Z0-9] [a-zA-Z0-9_-]+.)+[A-Z,a-z]{2,5}$
  • 6. Mit welchen Tools führt man ReGex aus? ▪ Textwrangler (Mac) ▪ Sublime Text (Mac) ▪ Notepad++ (Windows) ▪ VIM (Unix/Terminal) ▪ uvm.
  • 7. Metazeichen ▪ . beliebiges Zeichen ▪ ^ (Zeilen-)Anfang ▪ $ (Zeilen-)Ende ▪ | Alternative ▪ ( … ) Subpattern ▪ [ … ] Zeichenklassen ▪ * + ? { n,m } Quantoren ▪ Aufheben der Meta- Eigenschaften ▪ . ▪ ^ ▪ $ ▪ … Übersicht
  • 8. Zeichenklassen ▪ Eckige Klammern finden in regulären Ausdrücken Verwendung um eine Zeichenauswahl festzulegen ▪ [abc] Buchstabe a,b oder c ▪ [a-zA-Z0-9] alphanumerisches Zeichen ▪ [^a-zA-Z0-9] alles außer alphanumerischem Zeichen ▪ Vordefinierte Zeichenklassen ▪ d Zahl ▪ D keine Zahl ▪ w Wort ▪ W kein Wort ▪ s Whitespace ▪ s kein Whitespace ▪ t Tabulator ▪ r Zeilenumbruch Typen
  • 9. Quantoren ▪ Quantoren bzw. geschweifte Klammern dienen in regulären Ausdrücken dazu eine Anzahl festzulegen, also wie oft ein bestimmtes Zeichen oder ein erlaubter Zeichenbereich vorkommen darf, oder muss ▪ ? vorang. Ausdruck optional {0,1} ▪ + vorang. Ausdruck mindestens einmal {1,} ▪ * vorang. Ausdruck beliebig oft {0,} ▪ { min , max } ▪ { n } vor. Ausdruck exakt n-mal ▪ {, max } vor. Ausdruck maximal max-mal ▪ { min ,} vor. Ausdruck mindestens min-mal Typen
  • 10. Einstiegsbeispiel ▪ ^D[a-z]*i$ ▪ Dieser reguläre Ausdruck ist wie folgt zu verstehen: ▪ ^ steht für den Beginn des Strings, d. h. der String muss mit einem großen D beginnen (keine Zeichen davor) ▪ $ steht für das Ende des Strings, es dürfen also keine Zeichen hinter dem kleinen i kommen. ▪ Innerhalb der eckigen Klammern wird eine Zeichengruppe angegeben, in diesem Beispiel sind alle Zeichen von a bis z (in Kleinbuchstaben) erlaubt ▪ Das Sternchen (*) steht für beliebiges Vorkommen des zuvor definierten Wertes. In unserem Beispiel darf also nach dem großen D beliebig oft ein Zeichen aus der Menge a bis z vorkommen. ▪ Welche Eingaben sind damit erlaubt? ▪ DelphiXE - Nein, weil der String mit einem kleinen i enden muss ▪ Del-phi - Nein, weil zwischen D und i nur Kleinbuchstaben stehen dürfen und keine Bindestriche ▪ Delphi - korrekt
  • 11. Weitere Einstiegsbeispiele ▪ Leerzeilen löschen: ▪ r+ durch r ersetzen ▪ Datum umformatieren: ▪ 01.02.1900 zu 1900-02-01 ▪ (d{2}).(d{2}).(d{4}) durch 3-2-1 ersetzen ▪ Bestimmte Dateien aus der Liste löschen: ▪ *.(jpg|jpeg|css|js) ▪ Liste von AuBi-Artikel-URLs => ID rausfiltern ▪ http://www.autobild.de/artikel/fahrbericht-mercedes-benz-s-320-cdi-53622.html ▪ ^(.*?)-(d+).html ersetzen mit 2
  • 14. Einfache Beispiele .* Jedes beliebige Zeichen Beliebig oft (auch kein-mal)
  • 15. Einfache Beispiele – Alternative (F|Ph)antasie Text: „Phantasie kann man auch Fantasie schreiben, aber nicht Fantasy.“
  • 16. Einfache Beispiele – Alternative (F|Ph)antasie Text: „Phantasie kann man auch Fantasie schreiben, aber nicht Fantasy.“
  • 17. Einfache Beispiele – Quantoren auto-{0,1}bild auto-?bild Text: autobild auto bild auto-bild
  • 18. Einfache Beispiele – Quantoren auto-{0,1}bild auto-?bild Text: autobild auto bild auto-bild
  • 19. Einfache Beispiele – Zeichenklassen [KP-R]omma Text: Ohne Punkt und Komma Ohne Punkt und Pomma Ohne Punkt und Qomma Ohne Punkt und Romma Ohne Punkt und Somma
  • 20. Einfache Beispiele – Zeichenklassen [KP-R]omma Text: Ohne Punkt und Komma Ohne Punkt und Pomma Ohne Punkt und Qomma Ohne Punkt und Romma Ohne Punkt und Somma
  • 21. Einfache Beispiele – Negation mit Zirkumflex [^K]omma Text: Ohne Punkt und Komma Ohne Punkt und Pomma Ohne Punkt und Qomma Ohne Punkt und Romma Ohne Punkt und Somma
  • 22. Einfache Beispiele – Negation mit Zirkumflex [^K]omma Text: Ohne Punkt und Komma Ohne Punkt und Pomma Ohne Punkt und Qomma Ohne Punkt und Romma Ohne Punkt und Somma
  • 23. Einfache Beispiele – Zeichenklassen d+.d+.d+ Text: 11. Dezember 1980 4.10.1999 04/09/1979 01.02.2013
  • 24. Einfache Beispiele – Zeichenklassen d+.d+.d+ Text: 11. Dezember 1980 4.10.1999 04/09/1979 01.02.2013
  • 25. Einfache Beispiele – Postleitzahlen ^[0-9]{5}$ Text: 22767 Hamburg 1234 20251
  • 26. Einfache Beispiele – Postleitzahlen ^[0-9]{5}$ Text: 22767 Hamburg 1234 20251
  • 27. Einfache Beispiele – Postleitzahlen ^[0-9]{5}$ Nur komplette Zeile
  • 28. Einfache Beispiele – Postleitzahlen ^[0-9]{5}$ Nur komplette Zeile Ziffern von 0 bis 9
  • 29. Einfache Beispiele – Postleitzahlen ^[0-9]{5}$ Nur komplette Zeile Ziffern von 0 bis 9 Genau 5 Stück
  • 30. Einfache Beispiele – HTML-Tags <title>(.*?)</title> Text: <title>COMPUTER BILD: Tests, Downloads, Ratgeber & Kurse</title> <title class=„title“>COMPUTER BILD: Tests, Downloads, Ratgeber & Kurse</title> <title><b>COMPUTER BILD: Tests, Downloads, Ratgeber & Kurse</b></title>
  • 31. Einfache Beispiele – HTML-Tags <title>(.*?)</title> Text: <title>COMPUTER BILD: Tests, Downloads, Ratgeber & Kurse</title> <title class=„title“>COMPUTER BILD: Tests, Downloads, Ratgeber & Kurse</title> <title><b>COMPUTER BILD: Tests, Downloads, Ratgeber & Kurse</b></title>
  • 33. Fortgeschrittene Beispiele http://www.computerbild.de/sitemap- glossar.xml To Do: Bekommen aller Keywords der Glossarseiten aus den URLs ^http://www.computerbild.de/glossar/(.*?)-d+.html ersetzen durch 1
  • 34. Wer mehr über RegEx wissen möchte ▪ http://www.mediaevent.de/javascript/ Javascript-Regulaere-Ausdruecke- 1.html ▪ http://www.danielfett.de/internet-und- opensource,artikel,regulaere- ausdruecke ▪ http://www.regenechsen.de/phpwcm s/index.php?id=4,0,0,1,0,0 ▪ http://regexcrossword.com/