Hallo!
Ich habe da folgenden
my $string = qq~
Forscher haben am 12.05.2006, d. h. 12.5.2006 weitere Hinweise
dafür gefunden, dass Kohlendioxid ab dem 01/05/09 die
Erdatmosphäre stärker aufheizt als bisher angenommen.
Ein Bohrkern aus der Arktis, der 55 Millionen Jahre
altes Gestein enthält, d.h. etwas völlig unwesentliches,
brachte eine große - und insb. unangenehme - Überraschung(en).~;
my @w = ($string =~ m/\d\d?\.\d\d?\.\d\d\d\d|\d\d\?.\d\d?\.\d\d/g);
print Dumper( \@w );
Die RegEx durchsucht den Text auf Datumsangaben.
Es geht dabei nur um Daten der Form tt.mm.jjjj oder tt.mm.jj. Die anderen sind vorerst außen vor gelassen.
Ist es möglich, dass ich mir diese elende Oder-Verknüopfung sparen kann? Mit () geht es nicht (=>
m/\d\d?\.\d\d?\.\d\d(\d\d)?), weil sonst nur das als Ergebnisse herauskommt, was in der Klammer steht (von Verschachtelungen der Klammern mal ganz zu schweigen).
Kann man irgendwie angeben, dass nach 2 oder 4 Zahlen gesucht wird? \d{2,4} findet leider auch dreistellige Zahlen.
Grüße, pktm