Regul re ausdr cke regular expression
This presentation is the property of its rightful owner.
Sponsored Links
1 / 32

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


  • 42 Views
  • Uploaded on
  • Presentation posted in: General

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.

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


Regul re ausdr cke regular expression

Reguläre Ausdrücke / regular expression


M w @ w

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

P. Brezany


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 Buchstabenin $1

(.*) speichert die mittleren Buchstabenin $2

(.)$speichert den letzten Buchstabenin $3

P. Brezany


M w @ w1

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

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\-]+@[\.\w\-]+$/;

Beispiel: Österreichische Postleitzahl?

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

Beispiel: whitespace vorne und hinten entfernen…

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

P. Brezany


Regul re ausdr cke regular expression

  • \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\-]+@[\.\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


  • Login