Thread RegEx: Datum identifizieren (6 answers)
Opened by pktm at 2006-06-28 15:28

pktm
 2006-06-28 15:28
#67675 #67675
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Ich habe da folgenden
Code: (dl )
1
2
3
4
5
6
7
8
9
10
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
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread RegEx: Datum identifizieren