Regul - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

Regul

Description:

Regul re Ausdr cke / regular expression – PowerPoint PPT presentation

Number of Views:111
Avg rating:3.0/5.0
Slides: 42
Provided by: Charli224
Category:
Tags: gecko | regul

less

Transcript and Presenter's Notes

Title: Regul


1
Reguläre Ausdrücke / regular expression
2
m/\w\-_at_\.\w\-/
3
Mustererkennung und Reguläre Ausdrücke in Perl
http//de.wikipedia.org/wiki/Reguläre_Ausdrück
e http//en.wikipedia.org/wiki/Regular_expressio
n http//www.google.at/search?qregexperl
4
Reguläre Ausdrücke in der theoretischen Informatik
Alternative Aneinanderreihung Wiederholung
0 oder 1 0 und 1 1n (n 0)
01 0.1 1
01 01 11 1
Beispiel (01) 1100000011111001100 Beispiel (
001) 001001001001001001001
5
Reguläre Ausdrücke in der Praxis
84.141.73.125 - - 07/Feb/2006163048 0100
"GET /charlie/burka-girls/burka-girls/zeichnen.gi
f HTTP/1.1" 200 17401 "http//www.horus.at/charli
e/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/2006181732 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/2006181732 0100 "GET
/charlie/fotos/private_fotos/archiv/iris_party01.
jpg HTTP/1.1" 200 59489 "http//www.horus.at/char
lie/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
6
Perl (Practical Extraction and Report Language)
!/usr/bin/perl print "Hallo Welt! \n"
7
Mustererkennung und Reguläre Ausdrücke in Perl
m/MUSTER/ s/MUSTER/TEXT/ split(MUSTE
R,STRING)
8
Mustererkennung und Reguläre Ausdrücke in Perl
!/usr/bin/perl satz "Hallo Welt! \n" if
(satz m/Hallo/) print "Hallo gefunden!"

9
Mustererkennung und Reguläre Ausdrücke in Perl
!/usr/bin/perl satz "Hallo Welt!
\n" satz s/Hallo/Tschau/ print satz
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
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)
12
Mustererkennung und Reguläre Ausdrücke in Perl
satz "3Engel für Charlie!" satz
m/\D/ ? true matcht erste Nicht-Ziffer
(Leerzeichen nach 3 und vor E)
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
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.
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
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
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.
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, Chrlie, Ch rlie
matcht nicht Chrlie, Chaarlie
19
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
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.
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 Teufel 3 für
Charlie!"
22
Mustererkennung und Reguläre Ausdrücke in Perl
satz "Teufel 1, Teufel 2 und Teufel
3." satz s/(\d)/v1.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.
23
Mustererkennung und Reguläre Ausdrücke in Perl
satz "Engel A" satz s/(.)(.)(.)/32
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
24
m/\w\-_at_\.\w\-/
25
Mustererkennung und Reguläre Ausdrücke in Perl
Beispiel E-Mail Adresse? email
m/\w\-_at_\.\w\-/ Beispiel
Österreichische Postleitzahl? plz
m/A\s-\s\d4/ Beispiel whitespace vorne
und hinten entfernen name
s/\s(.?)\s/1/
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

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/)
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?
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.
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.
31
Mustererkennung und Reguläre Ausdrücke in Perl
Aufgabe 5 var "Hände, Strände,
Bände" Ersetzen Sie ä durch ae.
32
Mustererkennung und Reguläre Ausdrücke in Perl
Aufgabe 6 email m/\w\-_at_\.\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.
33
GREP Program (Unix/Linux Utility)
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
35
Mustererkennung und Reguläre Ausdrücke mit grep
My dog's got no nose. How does he smell? Awful.
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 2How does he
smell? 3-Awful. man grep
36
Mustererkennung und Reguläre Ausdrücke mit grep
My dog's got no nose. How does he smell? Awful.
A-Z a-z 0-9 sind Zeichenklassen grep
'Oo' joke1 My dog's got no nose. How does he
smell?
37
Mustererkennung und Reguläre Ausdrücke mit grep
My dog's got no nose. How does he smell? Awful.
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
38
Mustererkennung und Reguläre Ausdrücke mit grep
Zeilenanfang und Zeilenende grep ''
joke1 findet alle Leerzeilen übrigens ist
der Zirkumflex oder das Caret
39
Mustererkennung und Reguläre Ausdrücke mit grep
. - irgendein beliebiges Zeichen - null oder
mehrere Male den letzten Ausdruck \ - zum
maskieren von 'Sonderzeichen'
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.
(egle)gs Entweder eggs oder legs
41
-
Write a Comment
User Comments (0)
About PowerShow.com