regulaere Ausdruecke
2001-01-2 | 2:54 pm | Kein Kommentar »
if ($irgendwas =~/…/){…}
+ = {1,} ? = {0,1} * = {0,} |
mindestens eins hoechtens eins bel. viele, auch keins |
---|---|
^ $ |
Suche am Anfang des Audrucks Suche am Ende des Audrucks |
if ($irgendwas =~/ris/) if ($irgendwas =~/ine$/) if ($irgendwas =~/^ris/) |
Auswertung des Ausdrucks ergibt: true, d.h. wird gefunden true, d.h. wird gefunden false, d.h. wird nicht gefunden |
. /.*/ |
irgendein beliebiges Zeichen beliebig oft ein bel. Zeichen (auch null-mal) |
/^.*$/ /^$/ /^\s*$/ |
irgendetwas, auch Leerzeile Leerzeile Leerzeile |
\d = [0-9] \d\d = \d{2} \d{0,2} |
eine Ziffer zwei Ziffern hintereinander hoechstens zwei, aber auch keine Ziffer |
\s \S |
whitespaces nicht-whitespaces |
[aeiou]+ [^aeiou]+ |
Vokale Nicht-Vokale |
[a-kw-z] [0-9] |
Bereiche |
[„_,:] [\.\-\\] |
ohne Sonderbedeutung Escape bei Zeichen mit Sonderbedeutung |
$irgendwas = „ if ($irgendwas =~/< .*?>/) # findet <bla> if ($irgendwas =~/< [^>]+>/) # findet ebenfalls <bla> |
Klammerungen in regulaeren Ausdruecken
Die Nummerierung der Dollars entspricht der Reihenfolge der vorderen Klammern.
$irgendwas = „From: blub@bla.de“;
if ($irgendwas =~/^(\S+).\s*(.*)$/) {
$headerName = $1;
$headerContent = $2;
}
/^(bla)*blub$/ | findet blub ($1=bla) nicht blblub |
---|---|
(bla.)*blub | findet blaxlbub ($1=blax) findet blaublaublub ($1=blau) nicht blablub |
bla.*blub | findet blablub findet blablablub |
(bl(au)*g)+blub | findet blaugblub ($1=blaug, $2=au) findet blgblub nicht blagblub nicht blauaublub |
Bsp: mary had a lamb a cow and a sheep
if (/mary/i) {…} | i: caseinsensitive – Gross/Kleinschreibung egal |
---|---|
while (/a(.)/g) {print „$1\n“;} | |
g: global – Interpreter merkt sich die Stelle bei mehrfacher Ausfuehrung wird jeweils das naechste a gefunden |
|
while (/\sa\s(\S+)/g){print „$1\n“;} | |
findet „lamb“, „cow“, „sheep“ |
Sag etwas dazu: