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