Thread regex: newbie frage zum ersetzen (s///) (14 answers)
Opened by Lutz at 2006-01-25 19:11

Lutz
 2006-01-25 19:11
#62241 #62241
User since
2006-01-25
2 articles
BenutzerIn
[default_avatar]
Hallo,

ich brauch eure hilfe mit einem search&replace pattern. Was ich tun will ist, in einem datum alle einzifferigen Tages- und Monatsangaben mit einer vorangehenden Null zu ersetzen.
Beispiel: aus '25-1-2006' soll werden: '25-01-2006'

Code: (dl )
1
2
$d = "25-1-2006";
$d =~ s/(\D?)(\d{1})(\D{1})/$1(0$2)$3/g;

gibt mir allerdings folgendes:
'2(05)-(01)-2006'

Wenn ich die Klammern im Replace-Pattern weglasse, wertet er allerdings die Null nicht als vorangehenden String. Wie kriege ich den Ausdruck so umgebogen, dass er
a) in Search wirklich nur einzelne Ziffern matched, und
b) im Replace 0$2 auswertetn, $1 und $3 aber unverändert ausgibt? Und das Ganze dann bitte noch ohne Leer- oder sonstige Sonderzeichen?

Damit bin ich echt am verzweifeln. Hoffentlich kann mir jemand von euch weiter helfen. Vielen Dank schonmal.

View full thread regex: newbie frage zum ersetzen (s///)