  
Reguläre
Ausdrücke sind Klasse - Mit Ihnen kann man
in Perl so einiges anstellen (mehr dazu in 10.1),
aber Sie sind auch nicht unbedingt einfach. Dieses
Dokument deckt nicht alle Ausdrücke
ab! Wer mehr Infos zu den regulären Ausdrücken
sucht kann Sie hier
(iX Artikel) finden.
Unterkapitelindex
10.1 Wofür Reguläre
Ausdrücke?
10.2 Erste Ausdrücke
10.3 Zeichenklassen
10.4 Ersetzen
10.5 Quantifier
|
|
10.1
Wofür
Reguläre Ausdrücke?
Reguläre Ausdrücke kann man (fast) überall
in Perl verwenden. Hier nur 3 Beispiele:
- Als Bedingung in if Anweisung sowie for / while
Schleifen
- Zum Ersetzen von Strings
- Zum Teilen von Strings 
|
|
10.2
Erste Ausdrücke
Hier ein paar Beispiele für regüläre
Ausdrücke:
01
02
03
|
if ("abc"
=~ /a/i){}
if ("abc" =~ /a.c/i){}
if ("abc" =~ /(a|C)/i){}
|
01 Es wird geprüft ob "abc" den Buchstaben
"a" enthält.
02 Es wird geprüft ob "abc" den Buchstaben
"a" gefolgt von irgendeinem Zeichen gefolgt
vom Buchstaben "c" enthält.
03 Es wird geprüft ob "abc" ein "a"
oder "C" enthält
Alle 3 Bedingungen treffen zu. Durch die Option
"/i" wird nicht zwischen Groß &
Kleinschreibung unterschieden. |
|
10.3
Zeichenklassen
Bestimmte Zeichen sind in Klassen zusammengefasst:
\d
\w
\s
\D
\W
\S
|
Jede Ziffer
Jedes Zeichen (A-Z; 0-9; _ Unterstrich)
Spezielle Zeichen (Tab, Zeilenumbr. etc.)
Jedes Zeichen außer Ziffern
Jedes Zeichen außer A-Z und 0-9 sowie
der _ Unterstrich
Jedes Zeichen außer speziellen (Tab
etc.)
|
Diese
Zeichenklassen können in die regulären
Ausdrücke eingesetzt werden, also zum Beispiel:
01
|
if ("abc" =~ /\w/gi){ }
|
In dem
Beispiel wird geprüft ob "abc" einen
Buchstaben oder eine Ziffer enthält (trifft
natürlich zu). |
|
10.4
Ersetzen
Mit regulären Ausdrücken kann man nicht
nur suchen, sondern auch ersetzen. Dabei gibt es
die Möglichkeiten wie oben beschrieben. Ein
Beispiel:
01
02
03
|
my $abc = "a0c";
$abc =~ s/\d/b/i;
|
Im Beispiel
wird die 0 (siehe Zeichenklassen) durch ein "b"
ersetzt und so hat $abc am Ende den Wert "abc"
statt "a0c". Beachten Sie das "s"
hinter dem "=~". |
|
10.5
Quantifier
Der letzte Clou auf den Ich in diesem Dokument eingehen
möchte sind Quantifier. Dabei handelt es sich
um folgende:
+
*
?
[a]
[a,]
[a,b]
|
Ein- oder mehrmals vorhanden
Null oder mehrmals vorhanden
Kein oder einmal vorhanden
a Mal vorhanden
Mindestens a mal vorhanden
Mindest a aber nicht öfter als b mal
vorhanden
|
Die Quantifier können zwischen den Rest des
regulären Ausdrucks gesetzt. Hier ein Beispiel:
01
02
03
|
my $abc "fisch";
$abc =~ s/I.*/risch/i;
|
In diesem
Beispiel hat $abc am Ende den Wert "frisch"
da im regulären Ausdruck nach I und beliebig
vielen folgenden Buchstaben gesucht wird und der
gefunde String dann durch "risch" ersetzt
wird - Also f + isch + risch.
 
|