Reguläre Ausdrücke / regular expression. P. Brezany2 =~

Slides:



Advertisements
Ähnliche Präsentationen
Ausführen.
Advertisements

Forschungszentrum caesar
Bonn-to-code.net Keine Angst vor Regulären Ausdrücken Martin Winkler
Suche in Texten (Stringsuche )
10. Grundlagen imperativer Programmiersprachen
Markus Tank, Wie arbeitet man mit dem Rich Text Editor?
HTML - Einführung Richard Göbel.
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Parser - Verfahren: Rekursiver Abstieg
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Perl-Grundlagen Teile der Präsentation von A. Grupp,
Die Skriptsprache Perl (3) Wolfgang Friebel DESY Zeuthen.
Die Skriptsprache Perl (2) Wolfgang Friebel DESY Zeuthen.
Das erste Programm (Folie 16)
Marcus Haller & René Schulze
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
Kakuro Regeln und Strategien
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Wir bauen uns eine Webapplikation!
Keine Panik – Anmelden bei Wordpress
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
7 Bessere Übersicht mit NamenInhaltsverzeichnis 7 Bessere Übersicht mit Namen 7.1Grundlagen 7.2Namen vergeben 7.3Namen in Formeln einsetzen 7.4Nützliches.
Wird ganz am Anfang der HTML-Datei geschrieben Doctype html public bedeutet, dass man sich auf die Öffentlichkeit der html-dtd bezieht Html ist die meist.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
ADAT©2004 Dipl. - Ing. Walter SabinSeite: 1 Version 1.0a Einführung in Reguläre Ausdrücke.
Erste Schritte mit dem virtuellen Klassenzimmer Diese Anleitung verwendet in den meisten Fällen den Browser Firefox; Für den Browser Internet-Explorer.
Dynamische Webseiten-Generierung
Einführung in PHP.
Einführung in PHP 5.
Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist.
Agenda für heute, 14. April, 2005 Wiederholte ProgrammausführungWiederholte Programmausführung Algorithmische Grundlagen Bedingungen zum Abbruch von Programmschleifen.
3. Lineare Befehle 3.1 Die Ausgabefunktion
Zeichenketten in PASCAL
se_10_regulaere_ausdruecke.ppt1 Softwareengineering Reguläre Ausdrücke (regular expressions) Prof. Dr.-Ing. Axel Benz, Berlin School of Economics.
1 Tagesüberblick 3 Lösung Hausaufgabe/Fragen Zeilenweises Lesen von Dateien Schleifenausbrüche Die Variable $_ Textfunktionen.
1 Tagesüberblick 4 Lösung Hausaufgabe/Fragen Mustervergleiche.
Dokumente meistern Dokumente anlegen Dokumente speichern
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Erstellen einer Arff-Datei
Der Hund jagt die Katze. Theoretische Informatik Satz S P O
Blockseminar Allgemeine Technologien II Dozent: P. Sahle März 2009 PHP in HTML Referentin: Angela Brinck.
7. Formale Sprachen und Grammatiken
1 Tagesüberblick 5 Lösung Hausaufgabe/Fragen Assoziative Felder Funktionen zu Variablenbehandlung.
Das Fragezeichen Zeichensetzung.
Programmierungssprache PERL
(Syntax, Strings/Zahlen, Variablen, Arrays)
1 Tagesüberblick 7 Lösung Hausaufgabe/Fragen mehrdimensionale Datenstrukturen Module Fehlersuche Zusammenfassung Feedback.
Geoinformation3 Geoinformation III XML Grundlagen und Dokumentspezifikation Vorlesung 12b.
Delphi Chars und Strings
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Anmerkung des Autor Diese Präsentation ist mit Powerpoint für MacOS erstellt. Leider ist sie nicht vollständig mit Powerpoint für Windows kompatibel.
Grundlagen der R Programmiersprache Modul G WS 07/08.
Reguläre Ausdrücke / regular expression. P. Brezany2 =~
Daten und Information in der ITG
Passwortregeln Jedes System der FIRMA ist durch eine Passwortsicherung vor unerlaubtem Zugriff geschützt.
Reguläre Ausdrücke Stephan Baldes
Variablen und Datentypen
1 Servlets Stephan Baldes. 2 Was ist ein Servlet? S E R V L E T = Eine auf Java-Technologie basierte Web-Komponente, die von einem Container.
Pool Informatik, Sj 11/12 GZG FN W.Seyboldt 1 Pool Informatik 5 GZG FN Sj. 11/12 Kopieren, Daten, Programme.
Farbe Ändern von Rosa/lila zu (Hell- und Dunkel-)Grau Farben AGB FAQ Einbauservice Pumpenanfrage Versand & Lieferzeit.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Regular Expressions HBU-LINUX-2003 Adduser.sh? My_user_Verw.sh? AufgUser.sh? Wo ist das Script ??????? /home/donald ? /home ? /tmp ?
Besitzrechte. Datei- und Verzeichnis-Besitzer Dateien und Verzeichnisse gehören einem Benutzer und einer Gruppe Besitzer wird bei ls -l in der dritten.
Förderverein Bürgernetz München Land e.V. Seite 1 von 16 Textverarbeitung-2016_06 © 2016–Günther Scheckeler Tel.: Inhalt 1 Bestandteile eines.
Perl: pattern matching and regular expressions
Variable Beim Ausschalten gehen alle in den Variablen gespeicherten Informationen verloren! Zweck: Speichern von Informationen, z. B. Zahlen Modellvorstellung:
Googelnde Wikipedianer
Kniffelergebnisse.
Left Join, Right Join, Outer Join
 Präsentation transkript:

Reguläre Ausdrücke / regular expression

P. Brezany2 =~

P. Brezany3 Mustererkennung und Reguläre Ausdrücke in Perl

P. Brezany4 Reguläre Ausdrücke in der theoretischen Informatik AlternativeAneinanderreihungWiederholung 0 oder 10 und 11 n (n ≥ 0) * 0|10111* = 1 + Beispiel:(0|1)* … Beispiel:(001)

P. Brezany5 Reguläre Ausdrücke in der Praxis [07/Feb/2006:16:30: ] "GET /~charlie/burka-girls/burka-girls/zeichnen.gif HTTP/1.1" " "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Crazy Browser 1.0.5;.NET CLR ;.NET CLR )" [07/Feb/2006:18:17: ] "GET /~charlie/fotos/down.gif HTTP/1.1" " "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/ (KHTML, like Gecko) Safari/85.8" [07/Feb/2006:18:17: ] "GET /~charlie/fotos/private_fotos/archiv/iris_party01.jpg HTTP/1.1" " "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/ (KHTML, like Gecko) Safari/85.8" …

P. Brezany6 Perl (Practical Extraction and Report Language) #!/usr/bin/perl print "Hallo Welt! \n";

P. Brezany7 Mustererkennung und Reguläre Ausdrücke in Perl =~ m/MUSTER/ =~ s/MUSTER/TEXT/ split(MUSTER,STRING)

P. Brezany8 Mustererkennung und Reguläre Ausdrücke in Perl #!/usr/bin/perl $satz = "Hallo Welt! \n"; if ($satz =~ m/Hallo/) { print "Hallo gefunden!"; }

P. Brezany9 Mustererkennung und Reguläre Ausdrücke in Perl #!/usr/bin/perl $satz = "Hallo Welt! \n"; $satz =~ s/Hallo/Tschau/; print $satz;

P. Brezany10 Mustererkennung und Reguläre Ausdrücke in Perl $satz = "3 Engel für Charlie!"; $satz =~ m/a/; ⇒ true matcht erstes kleines a im String

P. Brezany11 Mustererkennung und Reguläre Ausdrücke in Perl $satz = "3 Engel für Charlie!"; $satz =~ m/\d/; ⇒ true matcht erste Ziffer (3) im String (digit)

P. Brezany12 Mustererkennung und Reguläre Ausdrücke in Perl $satz = "3·Engel für Charlie!"; $satz =~ m/\D/; ⇒ true matcht erste Nicht-Ziffer (Leerzeichen nach 3 und vor E)

P. Brezany13 Mustererkennung und Reguläre Ausdrücke in Perl $satz = "3 Engel für Charlie!"; $satz =~ m/f[äöü]r/; ⇒ true Zeichen-Klassen: z.B. [01], [äöü], [a-z], [^0-9] matcht: fär oder för oder für im String matcht nicht: füür oder fäöür oder fr oder FÜR

P. Brezany14 Mustererkennung und Reguläre Ausdrücke in Perl Zeichen, wie ^ $ ?. + * | [ ) \ / haben eine spezielle Bedeutung in Muster und müssen, wenn sie als normales Zeichen verwendet werden, mit einem Backslash \ vor dem Zeichen maskiert werden.

P. Brezany15 Mustererkennung und Reguläre Ausdrücke in Perl $satz = "Nur 3 Engel für Charlie?"; $satz =~ m/^\?/; ⇒ false matcht: ein Fragezeichen im String, das am String-Anfang stehen muss

P. Brezany16 Mustererkennung und Reguläre Ausdrücke in Perl $satz = "Nur 3 Engel für Charlie?"; $satz =~ m/\?$/; ⇒ true matcht: ein Fragezeichen im String, das am String-Ende stehen muss

P. Brezany17 Mustererkennung und Reguläre Ausdrücke in Perl $satz = "3 Engel für Charlie???"; $satz =~ m/Engeln?/; ⇒ true Das Fragezeichen bedeutet, dass der Buchstabe vor dem Fragezeichen (n) einmal oder keinmal vorkommen darf.

P. Brezany18 Mustererkennung und Reguläre Ausdrücke in Perl $satz = "3 Engel für Charlie???"; $satz =~ m/Ch.rlie/; ⇒ true Der Punkt (Joker) kann für genau ein beliebiges Zeichen stehen. matcht: Charlie, ChArlie, Ch1rlie, Ch%rlie, Ch rlie matcht nicht:Chrlie, Chaarlie

P. Brezany19 Mustererkennung und Reguläre Ausdrücke in Perl $satz = "3 Engel für Charlie???"; $satz =~ m/Charlie\?+/; ⇒ true matcht: Charlie?, Charlie????,…1 - n Fragezeichen $satz =~ m/Charlie\?*/; ⇒ true matcht: Charlie auch ohne ? 0 - n Fragezeichen

P. Brezany20 Mustererkennung und Reguläre Ausdrücke in Perl $satz = "3 Engel für Charlie???"; $satz =~ m/Charlie\?{2,4}$/; ⇒ true matcht: Charlie mit 2,3,oder 4 Fragezeichen $satz =~ m/ChArLiE/i; ⇒ true Das i macht das Muster case-insensitive, also unempfindlich gegenüber Groß- oder Kleinschreibung.

P. Brezany21 Mustererkennung und Reguläre Ausdrücke in Perl $satz = "Engel 1, Engel 2 und Engel 3 für Charlie!"; $satz =~ s/Engel/Teufel/; $satz ist "Teufel 1, Engel 2 und Engel 3 für Charlie!"; $satz =~ s/Engel/Teufel/g; $satz ist "Teufel 1, Teufel 2 und Teufel 3 für Charlie!";

P. Brezany22 Mustererkennung und Reguläre Ausdrücke in Perl $satz = "Teufel 1, Teufel 2 und Teufel 3."; $satz =~ s/(\d)/v$1.1/g; $satz = "Teufel v1.1, Teufel v2.1 und Teufel v3.1."; Mit runden Klammern kann man Teile des Strings abspeichern. Der gematchte Text des Musters im ersten Klammernpaar wird in $1, der im Zweiten in $2 gespeichert usw.

P. Brezany23 Mustererkennung und Reguläre Ausdrücke in Perl $satz = "Engel A"; $satz =~ s/^(.)(.*)(.)$/$3$2$1/; $satz ist "Angel E"; Der Ausdruck vertauscht den ersten und den letzten Buchstaben. ^(.)speichert den ersten Buchstabenin $1 (.*) speichert die mittleren Buchstabenin $2 (.)$speichert den letzten Buchstabenin $3

P. Brezany24 =~

P. Brezany25 Mustererkennung und Reguläre Ausdrücke in Perl Beispiel: Adresse? $ =~ Beispiel: Österreichische Postleitzahl? $plz =~ m/A\s*-\s*\d{4}$/; Beispiel: whitespace vorne und hinten entfernen… $name =~ s/^\s*(.*?)\s*$/$1/;

P. Brezany26 \n- Zeilenumbruch \t- Tabulator \w- Irgendein alphanumerischer (word) Buchstaben; [a-zA-Z0-9_] \W- nicht alphanumerisch (non-word); ist identisch mit [^a-zA-Z0-9_] \d- Eine Zahl. Ist identisch mit [0-9] \D- Keine Zahl. Ist identisch mit [^0-9] \s- 'whitespace character': space, tab, newline, etc \S- 'non-whitespace character' \b- Wortgrenze (nur ausserhalb [ ]) \B- Innerhalb eines Wortes.- Ein einzelner Buchstaben ohne newline ^- Zeilen- oder Stringanfang (nur außerhalb von [ ]) $- Zeilen- oder Stringende *- Null oder mehrere Male den letzten Buchstaben (gierig / greedy) *?- Null oder mehrere Male den letzten Buchstaben (minimal) +- Ein oder mehrere Male den letzten Buchstaben (gierig / greedy) +?- Ein oder mehrere Male den letzten Buchstaben (minimal) ?- Null oder ein Mal den letzten Buchstaben [abc]- a oder b oder c [^ab]- weder a noch b [a-z]+- Irgendeine Folge von Kleinbuchstaben |- entweder oder; z.B.: (eg|le)gs Entweder eggs oder legs () $1- Teil des Strings merken {2,4}- Quantifier \i- ignore case (nach Muster) \g- greedy (nach Muster)

P. Brezany27 Mustererkennung und Reguläre Ausdrücke in Perl Aufgabe 1: $bilder = "1.jpg, 2.jpeg, 3.JPEG, 4.JPG"; Bringen Sie die Endungen der Dateien in ein einheitliches Format. (Textersetzung mit =~ s/MUSTER/TEXT/)

P. Brezany28 Mustererkennung und Reguläre Ausdrücke in Perl Aufgabe 2: if ( $ =~ m/(:|;)-\)/ ) { print "Smile!"; } Welches Muster wird hier erkannt? Wann wird Smile! ausgegeben?

P. Brezany29 Mustererkennung und Reguläre Ausdrücke in Perl Aufgabe 3: Erkennen Sie das grundsätzliche Format eines UNET-Logins. (also: a und Matrikelnummer z.B.: a ). Folgende Regeln gilt es einzuhalten: Ein UNET-Login beginnt mit einem a. Danach folgen 7 (beliebigen) Ziffern.

P. Brezany30 Mustererkennung und Reguläre Ausdrücke in Perl Aufgabe 4: Prüfen Sie ob der Name einer skalaren Variable in Perl korrekt ist. (z.B.: $var, $Nachname, $x_11) Folgende Regeln gilt es einzuhalten: Skalar-Variablen beginnen mit einem $-Zeichen. Variablen-Namen bestehen aus (englischen) Buchstaben, Zahlen und Unterstrichen. Nach dem $ muss ein Buchstabe stehen.

P. Brezany31 Mustererkennung und Reguläre Ausdrücke in Perl Aufgabe 5: $var = "Hände, Strände, Bände"; Ersetzen Sie ä durch ae.

P. Brezany32 Mustererkennung und Reguläre Ausdrücke in Perl Aufgabe 6: $ =~ Dieser Ausdruck zum matchen von Adressen ist nicht perfekt. Suchen Sie Beispiele für a) gültige / vernüftige / realistische Adressen, die nicht gematcht werden. b) unsinnige / unrealistische Adressen, die gematcht werden.

P. Brezany33 GREP Program (Unix/Linux Utility)

P. Brezany34 Mustererkennung und Reguläre Ausdrücke mit grep grep ist ein Unix-Programm das nach Muster in Dateien sucht Zeilen die das Muster enthalten werden ausgegeben

P. Brezany35 Mustererkennung und Reguläre Ausdrücke mit grep Optionen: grep -valle Zeilen die nicht das Muster enthalten grep -nmit Zeilennummer vor der Zeile grep -iignoriert Groß/Kleinschreibung grep -lgibt (nur) den Dateinamen aus grep -cgibt (nur) die Anzahl der Zeilen grep -A 3gibt nach der Zeile noch 3 weitere Zeilen aus grep -Eoder egrep:erweiterte regex grep -niA 1 SMELL joke1 2:How does he smell? 3-Awful.man grep My dog's got no nose. How does he smell? Awful.

P. Brezany36 Mustererkennung und Reguläre Ausdrücke mit grep [A-Z] [a-z] [0-9] sind Zeichenklassen: grep '[Oo]' joke1 My dog's got no nose. How does he smell? My dog's got no nose. How does he smell? Awful.

P. Brezany37 Mustererkennung und Reguläre Ausdrücke mit grep grep 'l\{2\}' joke1 How does he smell? Der Ausdruck vor \{n\}kommt n Mal vor \{n,\}kommt mindestens n Mal vor \{n,m\} kommt n bis m Mal vor My dog's got no nose. How does he smell? Awful.

P. Brezany38 Mustererkennung und Reguläre Ausdrücke mit grep ^Zeilenanfang und Zeilenende$ grep '^$' joke1 findet alle Leerzeilen übrigens: ^ ist der Zirkumflex oder das Caret

P. Brezany39 Mustererkennung und Reguläre Ausdrücke mit grep.- irgendein beliebiges Zeichen *- null oder mehrere Male den letzten Ausdruck \- zum maskieren von 'Sonderzeichen'

P. Brezany40 Mustererkennung und Reguläre Ausdrücke mit egrep grep -E oder egrep: erweiterte Reguläre Ausdrücke +- ein oder mehrere Male den letzten Ausdruck ?- null oder ein Mal den letzten Ausdruck |- entweder oder ()- z.B.: (eg|le)gs : Entweder eggs oder legs

P. Brezany41 -