Hallo geehrtes Forum,
$datum liegt in folgenden möglichen Formaten vor:
12.03.2010
03.2010
2010
Folgende Regexe liefern mir die einzelnen Elemente:
my ( $tag ) = ( $datum =~ /(\d\d)\.\d\d\.\d\d\d\d/ );
my ( $monat ) = ( $datum =~ /(?:\d\d\.)*?(\d\d)\.\d\d\d\d/ );
my ( $jahr ) = ( $datum =~ /(?:\d\d\.)*?(?:\d\d\.)*?(\d\d\d\d)/ );
Nun habe ich versucht, die drei zusammenzufassen. Das klappt aber nicht:
my ( $tag, $monat, $jahr ) = ( $datum =~ /(?:(\d\d\).)*?(?:(\d\d\).)*?(\d\d\d\d)/ );
Einen Stringteil kann ich mit (?:xyz) gruppieren und mittels angehängtem *? im Falle des Nichtvorhandenseins ignorieren. Ist es möglich, innerhalb eines regulären Ausdrucks auch Variablen nur optional zu matchen?
Besten Gruß
JOhnnY