1 / 41

Reguläre Ausdrücke / regular expression

Reguläre Ausdrücke / regular expression. =~ m/^[w-]+@[.w-]+$/. Mustererkennung und Reguläre Ausdrücke in Perl. http://de.wikipedia.org/wiki/Reguläre_Ausdrücke http://en.wikipedia.org/wiki/Regular_expression http://www.google.at/search?q=regex+perl.

cirila
Download Presentation

Reguläre Ausdrücke / regular expression

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Reguläre Ausdrücke / regular expression

  2. =~ m/^[\w\-]+@[\.\w\-]+$/ P. Brezany

  3. Mustererkennung und Reguläre Ausdrücke in Perl http://de.wikipedia.org/wiki/Reguläre_Ausdrücke http://en.wikipedia.org/wiki/Regular_expression http://www.google.at/search?q=regex+perl P. Brezany

  4. Reguläre Ausdrücke in der theoretischen Informatik Beispiel: (0|1)* 110000001…1111001100 Beispiel: (001)+ 001001001001001001001 P. Brezany

  5. Reguläre Ausdrücke in der Praxis 84.141.73.125 - - [07/Feb/2006:16:30:48 +0100] "GET /~charlie/burka-girls/burka-girls/zeichnen.gif HTTP/1.1" 200 17401 "http://www.horus.at/~charlie/burka-girls/index.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Crazy Browser 1.0.5; .NET CLR 1.0.3705; .NET CLR 1.1.4322)" 21374 84.58.207.237 - - [07/Feb/2006:18:17:32 +0100] "GET /~charlie/fotos/down.gif HTTP/1.1" 200 79 "http://www.horus.at/~charlie/fotos/index.php" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.8.2 (KHTML, like Gecko) Safari/85.8" 29228 84.58.207.237 - - [07/Feb/2006:18:17:32 +0100] "GET /~charlie/fotos/private_fotos/archiv/iris_party01.jpg HTTP/1.1" 200 59489 "http://www.horus.at/~charlie/fotos/index.php" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.8.2 (KHTML, like Gecko) Safari/85.8" 27171 … P. Brezany

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

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

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

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

  10. 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. Brezany

  11. 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. Brezany

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

  13. 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. Brezany

  14. 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. Brezany

  15. 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. Brezany

  16. 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. Brezany

  17. 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. Brezany

  18. 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. Brezany

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

  20. 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. Brezany

  21. 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 Teufel3 für Charlie!"; P. Brezany

  22. Mustererkennung und Reguläre Ausdrücke in Perl $satz = "Teufel 1, Teufel 2 und Teufel 3."; $satz =~ s/(\d)/v$1.1/g; $satz = "Teufelv1.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. Brezany

  23. 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 Buchstaben in $1 (.*) speichert die mittleren Buchstaben in $2 (.)$ speichert den letzten Buchstaben in $3 P. Brezany

  24. =~ m/^[\w\-]+@[\.\w\-]+$/ P. Brezany

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

  26. \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. Brezany

  27. 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. Brezany

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

  29. 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.: a0409142). Folgende Regeln gilt es einzuhalten: Ein UNET-Login beginnt mit einem a. Danach folgen 7 (beliebigen) Ziffern. P. Brezany

  30. 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. Brezany

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

  32. Mustererkennung und Reguläre Ausdrücke in Perl Aufgabe 6: $email =~ m/^[\w\-]+@[\.\w\-]+$/; Dieser Ausdruck zum matchen von E-Mail Adressen ist nicht perfekt. Suchen Sie Beispiele für a) gültige / vernüftige / realistische E-Mail Adressen, die nicht gematcht werden. b) unsinnige / unrealistische E-Mail Adressen, die gematcht werden. P. Brezany

  33. GREP Program (Unix/Linux Utility) P. Brezany

  34. 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. Brezany

  35. My dog's got no nose. How does he smell? Awful. Mustererkennung und Reguläre Ausdrücke mit grep Optionen: grep -v alle Zeilen die nicht das Muster enthalten grep -n mit Zeilennummer vor der Zeile grep -i ignoriert Groß/Kleinschreibung grep -l gibt (nur) den Dateinamen aus grep -c gibt (nur) die Anzahl der Zeilen grep -A 3 gibt nach der Zeile noch 3 weitere Zeilen aus grep -E oder egrep: erweiterte regex grep -niA 1 SMELL joke1 2:How does he smell? 3-Awful. man grep P. Brezany

  36. My dog's got no nose. How does he smell? Awful. 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? P. Brezany

  37. My dog's got no nose. How does he smell? Awful. 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 P. Brezany

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

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

  40. 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. Brezany

  41. - P. Brezany

More Related