regul re ausdr cke regular expression
Download
Skip this Video
Download Presentation
Reguläre Ausdrücke / regular expression

Loading in 2 Seconds...

play fullscreen
1 / 32

Reguläre Ausdrücke / regular expression - PowerPoint PPT Presentation


  • 62 Views
  • Uploaded on

Reguläre Ausdrücke / regular expression. =~ m/^[\w\-][email protected][\.\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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Reguläre Ausdrücke / regular expression ' - xantha-moody


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
mustererkennung und regul re ausdr cke in perl
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

regul re ausdr cke in der theoretischen informatik
Reguläre Ausdrücke in der theoretischen Informatik

Beispiel: (0|1)* 110000001…1111001100

Beispiel: (001)+ 001001001001001001001

P. Brezany

regul re ausdr cke in der praxis
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

perl practical extraction and report language
Perl (Practical Extraction and Report Language)

#!/usr/bin/perl

print "Hallo Welt! \n";

P. Brezany

mustererkennung und regul re ausdr cke in perl1
Mustererkennung und Reguläre Ausdrücke in Perl

=~ m/MUSTER/

=~ s/MUSTER/TEXT/

split(MUSTER,STRING)

P. Brezany

mustererkennung und regul re ausdr cke in perl2
Mustererkennung und Reguläre Ausdrücke in Perl

#!/usr/bin/perl

$satz = "Hallo Welt! \n";

if ($satz =~ m/Hallo/) {

print "Hallo gefunden!";

}

P. Brezany

mustererkennung und regul re ausdr cke in perl3
Mustererkennung und Reguläre Ausdrücke in Perl

#!/usr/bin/perl

$satz = "Hallo Welt! \n";

$satz =~ s/Hallo/Tschau/;

print $satz;

P. Brezany

mustererkennung und regul re ausdr cke in perl4
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

mustererkennung und regul re ausdr cke in perl5
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

mustererkennung und regul re ausdr cke in perl6
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

mustererkennung und regul re ausdr cke in perl7
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

mustererkennung und regul re ausdr cke in perl8
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

mustererkennung und regul re ausdr cke in perl9
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

mustererkennung und regul re ausdr cke in perl10
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

mustererkennung und regul re ausdr cke in perl11
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

mustererkennung und regul re ausdr cke in perl12
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

mustererkennung und regul re ausdr cke in perl13
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

mustererkennung und regul re ausdr cke in perl14
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

mustererkennung und regul re ausdr cke in perl15
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

mustererkennung und regul re ausdr cke in perl16
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

mustererkennung und regul re ausdr cke in perl17
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

mustererkennung und regul re ausdr cke in perl18
Mustererkennung und Reguläre Ausdrücke in Perl

Beispiel: E-Mail Adresse?

$email =~ m/^[\w\-][email protected][\.\w\-]+$/;

Beispiel: Österreichische Postleitzahl?

$plz =~ m/A\s*-\s*\d{4}$/;

Beispiel: whitespace vorne und hinten entfernen…

$name =~ s/^\s*(.*?)\s*$/$1/;

P. Brezany

slide26
\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

mustererkennung und regul re ausdr cke in perl19
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

mustererkennung und regul re ausdr cke in perl20
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

mustererkennung und regul re ausdr cke in perl21
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

mustererkennung und regul re ausdr cke in perl22
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

mustererkennung und regul re ausdr cke in perl23
Mustererkennung und Reguläre Ausdrücke in Perl

Aufgabe 5:

$var = "Hände, Strände, Bände";

Ersetzen Sie ä durch ae.

P. Brezany

mustererkennung und regul re ausdr cke in perl24
Mustererkennung und Reguläre Ausdrücke in Perl

Aufgabe 6:

$email =~ m/^[\w\-][email protected][\.\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

ad