SlideShare ist ein Scribd-Unternehmen logo

Regular Expressions - eine Einführung

Gastvortrag an der HTW Berlin am 8.Dezember 2011. Vorstellung von Regular Expressions.

1 von 27
Downloaden Sie, um offline zu lesen
Regular Expressions
Ziel




       based on http://xkcd.com/208/ by Randall Munroe - used under CC-BY-NC
Vorlesung und Übung zu Regular Expressions

-  Irgendwas mit Strings:      - grep
   –  match (erkennen)         - vi, vim
   –  replace (ersetzen)       - sed, awk
-  Theoretische                - perl
   Informatik:                 - c, c++
   –  Regulärer Ausdruck       - javascript
   –  equivalent zu            - java, c#
   –  Endlicher Automat
      (Finite State Machine)
Anwendungsbeispiele




$ grep POST log/development.log!
Started POST "/modul/27-modul-netzwerke/book" for 127.0.0.1 at 2011-09-19 16:30:33 +0200
Started POST "/event/ditact-2011" for 127.0.0.1 at 2011-09-19 16:32:33 +0200
Started POST "/enroll/1659" for 127.0.0.1 at 2011-09-19 16:33:23 +0200
Started POST "/admin/event/ditact-2011/updatebookings" for 127.0.0.1 at 2011-09-19 16:36:18 +0200
Started POST "/admin/event/ditact-2011/updatebookings" for 127.0.0.1 at 2011-09-19 16:36:22 +0200
Started POST "/course_evaluation/76" for 127.0.0.1 at 2011-09-20 17:07:36 +0200
Started POST "/user/sign_in" for 127.0.0.1 at 2011-10-17 11:18:40 +0200
Anwendungsbeispiel PHP
                           # PHP: Aus Wordpress Plugins!
Code code code code code




                           if (preg_match('/^(http)(s?)(:)///',$linky)){!

                           if (preg_match ( "/en|sk|zh|us|uk/", $locale_code )){!


                           # allgemein:!
                           preg_match( "/regex/", "string in dem ich suche") !
Anwendungsbeispiel Javascript
                           # Javascript!
Code code code code code




                           if (navigator.appVersion.match(/MSIE [0-6]./)) { !

                           if (formula.match(/^d+$/)) { // just a number!


                           # Allgemein: regex hat eigene Syntax, ist ein!
                           #            eigener Datentyp!

                           string.match(/regex/)!

                           # für Fortgeschrittene: zur Laufzeit aus String bauen!
                           r = new RegEx("/regex/")!
                           r.execute(string)!

Recomendados

InDesign CS6 Seminar
InDesign CS6 SeminarInDesign CS6 Seminar
InDesign CS6 SeminarSven Brencher
 
Eine (sehr) kurze Einführung in formale Ontologien
Eine (sehr) kurze Einführung in formale OntologienEine (sehr) kurze Einführung in formale Ontologien
Eine (sehr) kurze Einführung in formale Ontologienmahok
 
Verschiedenen Berufen
Verschiedenen BerufenVerschiedenen Berufen
Verschiedenen Berufenlilalia
 
Partner-Workshop e-teaching.org: E-Learning-Support an der Goethe-Universitä...
Partner-Workshop e-teaching.org:  E-Learning-Support an der Goethe-Universitä...Partner-Workshop e-teaching.org:  E-Learning-Support an der Goethe-Universitä...
Partner-Workshop e-teaching.org: E-Learning-Support an der Goethe-Universitä...e-teaching.org
 
Anleitung zur Erstellung und Veröffentlichung eines iPad Magazins mit der Dig...
Anleitung zur Erstellung und Veröffentlichung eines iPad Magazins mit der Dig...Anleitung zur Erstellung und Veröffentlichung eines iPad Magazins mit der Dig...
Anleitung zur Erstellung und Veröffentlichung eines iPad Magazins mit der Dig...Sven Brencher
 

Más contenido relacionado

Destacado

E-Learning-Trendforschung: Marc Göcks
E-Learning-Trendforschung: Marc GöcksE-Learning-Trendforschung: Marc Göcks
E-Learning-Trendforschung: Marc Göckse-teaching.org
 
2010 fnma e_portfolios im web
2010 fnma e_portfolios im web2010 fnma e_portfolios im web
2010 fnma e_portfolios im webwhilzensauer
 
Design im Immer- und Ueberall-Web
Design im Immer- und Ueberall-WebDesign im Immer- und Ueberall-Web
Design im Immer- und Ueberall-WebGerrit van Aaken
 
As Melhores Piscinas
As Melhores PiscinasAs Melhores Piscinas
As Melhores Piscinasalex
 
Sonderbeilage Berliner Zeitung Festival of Lights
Sonderbeilage Berliner Zeitung Festival of LightsSonderbeilage Berliner Zeitung Festival of Lights
Sonderbeilage Berliner Zeitung Festival of LightsChristian Oblasser
 
Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)
Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)
Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)e-teaching.org
 
S U R F I N G
S U R F I N GS U R F I N G
S U R F I N GMarlis
 
Girls' Day 2008
Girls' Day 2008Girls' Day 2008
Girls' Day 2008lilalia
 
Strategische Institutionalisierung als Wertbeitrag für Medienunternehmungen -...
Strategische Institutionalisierung als Wertbeitrag für Medienunternehmungen -...Strategische Institutionalisierung als Wertbeitrag für Medienunternehmungen -...
Strategische Institutionalisierung als Wertbeitrag für Medienunternehmungen -...Christopher Buschow
 
Audioboo - ein Audiowerkzeug für den Unterricht
Audioboo - ein Audiowerkzeug für den UnterrichtAudioboo - ein Audiowerkzeug für den Unterricht
Audioboo - ein Audiowerkzeug für den Unterrichte-teaching.org
 
Brand Blariaum juni 2008
Brand Blariaum juni 2008Brand Blariaum juni 2008
Brand Blariaum juni 2008mmm112
 
Image Of Sadness
Image Of SadnessImage Of Sadness
Image Of Sadnessamonyhig .
 
ImáGenes Disney
ImáGenes  DisneyImáGenes  Disney
ImáGenes Disneyguest2186b1
 
Was ich von_lulzsec_gelernt_habe
Was ich von_lulzsec_gelernt_habeWas ich von_lulzsec_gelernt_habe
Was ich von_lulzsec_gelernt_habeFederico Elles
 
Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...
Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...
Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...Christopher Buschow
 
Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...
Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...
Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...e-teaching.org
 

Destacado (19)

E-Learning-Trendforschung: Marc Göcks
E-Learning-Trendforschung: Marc GöcksE-Learning-Trendforschung: Marc Göcks
E-Learning-Trendforschung: Marc Göcks
 
2010 fnma e_portfolios im web
2010 fnma e_portfolios im web2010 fnma e_portfolios im web
2010 fnma e_portfolios im web
 
Design im Immer- und Ueberall-Web
Design im Immer- und Ueberall-WebDesign im Immer- und Ueberall-Web
Design im Immer- und Ueberall-Web
 
As Melhores Piscinas
As Melhores PiscinasAs Melhores Piscinas
As Melhores Piscinas
 
Sonderbeilage Berliner Zeitung Festival of Lights
Sonderbeilage Berliner Zeitung Festival of LightsSonderbeilage Berliner Zeitung Festival of Lights
Sonderbeilage Berliner Zeitung Festival of Lights
 
Enterprise 2.0
Enterprise 2.0Enterprise 2.0
Enterprise 2.0
 
Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)
Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)
Social Media in Studium und Lehre (Folien Dr. des. Eva-Christina Edinger)
 
Info Abend
Info  AbendInfo  Abend
Info Abend
 
S U R F I N G
S U R F I N GS U R F I N G
S U R F I N G
 
Definiciones 3
Definiciones 3Definiciones 3
Definiciones 3
 
Girls' Day 2008
Girls' Day 2008Girls' Day 2008
Girls' Day 2008
 
Strategische Institutionalisierung als Wertbeitrag für Medienunternehmungen -...
Strategische Institutionalisierung als Wertbeitrag für Medienunternehmungen -...Strategische Institutionalisierung als Wertbeitrag für Medienunternehmungen -...
Strategische Institutionalisierung als Wertbeitrag für Medienunternehmungen -...
 
Audioboo - ein Audiowerkzeug für den Unterricht
Audioboo - ein Audiowerkzeug für den UnterrichtAudioboo - ein Audiowerkzeug für den Unterricht
Audioboo - ein Audiowerkzeug für den Unterricht
 
Brand Blariaum juni 2008
Brand Blariaum juni 2008Brand Blariaum juni 2008
Brand Blariaum juni 2008
 
Image Of Sadness
Image Of SadnessImage Of Sadness
Image Of Sadness
 
ImáGenes Disney
ImáGenes  DisneyImáGenes  Disney
ImáGenes Disney
 
Was ich von_lulzsec_gelernt_habe
Was ich von_lulzsec_gelernt_habeWas ich von_lulzsec_gelernt_habe
Was ich von_lulzsec_gelernt_habe
 
Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...
Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...
Fernsehen trifft Social Media - Neue Wege der Kommunikationspolitik am Beispi...
 
Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...
Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...
Neue Lernorte an der Universität – das Projekt Mobile Lehre Hohenheim (Slides...
 

Ähnlich wie Regular Expressions - eine Einführung

Perl 6 Regex und Grammars
Perl 6 Regex und GrammarsPerl 6 Regex und Grammars
Perl 6 Regex und Grammarslichtkind
 
Perl 5 Quiz Chemnitz Edition
Perl 5 Quiz Chemnitz EditionPerl 5 Quiz Chemnitz Edition
Perl 5 Quiz Chemnitz Editionlichtkind
 
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003Brigitte Jellinek
 
Von Automaten zu Programmen–Parsergeneratoren und Attributgrammatiken
Von Automaten zu Programmen–Parsergeneratoren und AttributgrammatikenVon Automaten zu Programmen–Parsergeneratoren und Attributgrammatiken
Von Automaten zu Programmen–Parsergeneratoren und AttributgrammatikenTim Furche
 
A fool with a tool - Scraping Basics
A fool with a tool - Scraping BasicsA fool with a tool - Scraping Basics
A fool with a tool - Scraping BasicsMarkus Uhl
 

Ähnlich wie Regular Expressions - eine Einführung (6)

Perl 6 Regex und Grammars
Perl 6 Regex und GrammarsPerl 6 Regex und Grammars
Perl 6 Regex und Grammars
 
Snes Cd 020
Snes Cd 020Snes Cd 020
Snes Cd 020
 
Perl 5 Quiz Chemnitz Edition
Perl 5 Quiz Chemnitz EditionPerl 5 Quiz Chemnitz Edition
Perl 5 Quiz Chemnitz Edition
 
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003
Perl - die Taschenkettensäge unter den Programmiersprachen - Vortrag 2003
 
Von Automaten zu Programmen–Parsergeneratoren und Attributgrammatiken
Von Automaten zu Programmen–Parsergeneratoren und AttributgrammatikenVon Automaten zu Programmen–Parsergeneratoren und Attributgrammatiken
Von Automaten zu Programmen–Parsergeneratoren und Attributgrammatiken
 
A fool with a tool - Scraping Basics
A fool with a tool - Scraping BasicsA fool with a tool - Scraping Basics
A fool with a tool - Scraping Basics
 

Mehr von Brigitte Jellinek

PHP at University - is it even possible?
PHP at University - is it even possible?PHP at University - is it even possible?
PHP at University - is it even possible?Brigitte Jellinek
 
Railsgirls: Where did my HTML and CSS go
Railsgirls: Where did my HTML and CSS goRailsgirls: Where did my HTML and CSS go
Railsgirls: Where did my HTML and CSS goBrigitte Jellinek
 
ditact it summer school 2010 kurzvorstellung
ditact it summer school 2010 kurzvorstellungditact it summer school 2010 kurzvorstellung
ditact it summer school 2010 kurzvorstellungBrigitte Jellinek
 
Master Studiengang Multimediaart an der Fachhochschule Salzburg
Master Studiengang Multimediaart an der Fachhochschule SalzburgMaster Studiengang Multimediaart an der Fachhochschule Salzburg
Master Studiengang Multimediaart an der Fachhochschule SalzburgBrigitte Jellinek
 
Bachelor Multimediaart an der Fachhochschule Salzburg
Bachelor Multimediaart an der Fachhochschule SalzburgBachelor Multimediaart an der Fachhochschule Salzburg
Bachelor Multimediaart an der Fachhochschule SalzburgBrigitte Jellinek
 

Mehr von Brigitte Jellinek (7)

PHP at University - is it even possible?
PHP at University - is it even possible?PHP at University - is it even possible?
PHP at University - is it even possible?
 
Railsgirls: Where did my HTML and CSS go
Railsgirls: Where did my HTML and CSS goRailsgirls: Where did my HTML and CSS go
Railsgirls: Where did my HTML and CSS go
 
ditact it summer school 2010 kurzvorstellung
ditact it summer school 2010 kurzvorstellungditact it summer school 2010 kurzvorstellung
ditact it summer school 2010 kurzvorstellung
 
Master Studiengang Multimediaart an der Fachhochschule Salzburg
Master Studiengang Multimediaart an der Fachhochschule SalzburgMaster Studiengang Multimediaart an der Fachhochschule Salzburg
Master Studiengang Multimediaart an der Fachhochschule Salzburg
 
Bachelor Multimediaart an der Fachhochschule Salzburg
Bachelor Multimediaart an der Fachhochschule SalzburgBachelor Multimediaart an der Fachhochschule Salzburg
Bachelor Multimediaart an der Fachhochschule Salzburg
 
jQuery Kurz-Intro
jQuery Kurz-IntrojQuery Kurz-Intro
jQuery Kurz-Intro
 
Why use Perl?
Why use Perl?Why use Perl?
Why use Perl?
 

Regular Expressions - eine Einführung

  • 2. Ziel based on http://xkcd.com/208/ by Randall Munroe - used under CC-BY-NC
  • 3. Vorlesung und Übung zu Regular Expressions -  Irgendwas mit Strings: - grep –  match (erkennen) - vi, vim –  replace (ersetzen) - sed, awk -  Theoretische - perl Informatik: - c, c++ –  Regulärer Ausdruck - javascript –  equivalent zu - java, c# –  Endlicher Automat (Finite State Machine)
  • 4. Anwendungsbeispiele $ grep POST log/development.log! Started POST "/modul/27-modul-netzwerke/book" for 127.0.0.1 at 2011-09-19 16:30:33 +0200 Started POST "/event/ditact-2011" for 127.0.0.1 at 2011-09-19 16:32:33 +0200 Started POST "/enroll/1659" for 127.0.0.1 at 2011-09-19 16:33:23 +0200 Started POST "/admin/event/ditact-2011/updatebookings" for 127.0.0.1 at 2011-09-19 16:36:18 +0200 Started POST "/admin/event/ditact-2011/updatebookings" for 127.0.0.1 at 2011-09-19 16:36:22 +0200 Started POST "/course_evaluation/76" for 127.0.0.1 at 2011-09-20 17:07:36 +0200 Started POST "/user/sign_in" for 127.0.0.1 at 2011-10-17 11:18:40 +0200
  • 5. Anwendungsbeispiel PHP # PHP: Aus Wordpress Plugins! Code code code code code if (preg_match('/^(http)(s?)(:)///',$linky)){! if (preg_match ( "/en|sk|zh|us|uk/", $locale_code )){! # allgemein:! preg_match( "/regex/", "string in dem ich suche") !
  • 6. Anwendungsbeispiel Javascript # Javascript! Code code code code code if (navigator.appVersion.match(/MSIE [0-6]./)) { ! if (formula.match(/^d+$/)) { // just a number! # Allgemein: regex hat eigene Syntax, ist ein! # eigener Datentyp! string.match(/regex/)! # für Fortgeschrittene: zur Laufzeit aus String bauen! r = new RegEx("/regex/")! r.execute(string)!
  • 7. Anwendungsbeispiel Ruby # Ruby! Code code code code code if env['HTTP_USER_AGENT'] =~ /chromeframe/! if line =~ /^committer: (.+)$/! next unless f =~ /^https?:///! # Allgemein: RegEx hat eigene Syntax! string =~ /regex/!
  • 8. Anwendungsbeispiel C# # c# Aus http://support.microsoft.com/kb/308252! Code code code code code using System.Text.RegularExpressions;! Regex emailregex = new Regex("@");! String s = "johndoe@tempuri.org";! Match m = emailregex.Match(s);! if ( m.Success ) { ! Console.WriteLine("ja"); ! }!
  • 9. Zeichen /hallo/! ja:! "hallo"! "aber hallo!"! "die hallobergrenze"! nein:! "halo"! "Hallo"! "<span>h</span>allo"!
  • 10. Oder /en|sk|us|uk/! ja:! "en"! "sk"! "uk"! "ukulele"! nein:! "esuu"!
  • 11. Gruppieren /(de|fr)_(DE|CH)/! ja:! "de_DE"! "fr_DE"! "de_CH"! "fr_CH"! nein:! "de_AT"! "it_CH"!
  • 12. Verankern /^(en|sk|us|uk)$/! ja:! "en"! "sk"! "uk"! nein:! "ukulele"! "esuuk"!
  • 13. Zeichen zur Auswahl: Klasse /^hall[oia]$/! ja:! "halli"! "hallo"! "halla"! nein:! "hall"! "halloi"! "hallö"!
  • 14. Zeichen zur Auswahl: Klasse /^u[1-4]$/! ja:! "u1"! "u2"! "u3"! "u4"! nein:! "u5"! "ux"!
  • 15. Zeichen zur Auswahl: Komplement der Klasse /^u[^1-4]$/! ja:! "u5"! "ux"! "u/"! nein:! "u1"! "u2"! "u3"! "u4"!
  • 16. Klasse der Ziffern /^ud$/! ja:! "u5"! "u9"! "u0"! nein:! "ux"! "uz"! "udrei"!
  • 17. Klasse der Wort-Zeichen /^w$/! die Zeichen, die man in Variablennamen verwenden darf:! a-z, A-Z, 0-9, _!
  • 18. Irgendein Zeichen /^....$/! ja:! "1234"! "&$§_"! nein:! "1"! "12345"!
  • 19. Beliebig viele davon: der Stern-Operator /^d*$/! ja:! ""! "1"! "123"! "1111"! nein:! "1a"!
  • 20. Mindestens eins davon: der + Operator /^d+$/! ja:! "1"! "123"! "1111"! nein:! ""! "1a"!
  • 21. eins oder keins: der ? Operator -  /^imis?$/ -  ja: -  "imi" -  "imis" -  nein: -  "imissss"
  • 22. Anzahl festlegen /^d{4}$/! genau 4 Ziffern! /^d{3,6}$/! 3 bis 6 Ziffern!
  • 23. Eins oder keins /^imid?$/! ja:! "imi"! "imi0"! "imi9"! nein:! "imi2011"!
  • 24. mindestens eine ziffer /^imid+$/! ja:! "imi0"! "imi9"! "imi2011"! nein:! "imi"!
  • 25. Operatoren sind "greedy" /(d*)/! "01234567"! ^^^^^^^^! /_(.*)_/! "_bla_ _bla_"! ^^^^^! ^^^^^^^! ^^^^^^^^^^^! den längsten möglichen String!!
  • 26. Warnhinweis -  Es gibt Ding, die man nicht mehr mit Regular Expressions in den Griff bekommt -  Siehe Theoretische Informatik: –  reguläre Ausdrück = Chomsky Hierarchie Typ 3 –  kontextfreie Grammatik = Chomsky Hierarchie Typ 2 -  Alle Computersprachen, XML, HTML sind Typ 2 -  Man braucht also einen richtigen Parser dafür!