in reply to need regular expression

Untested. s/(\d?\d)(-\d?\d-\d?\d)/(2000+$1).$2/eg

Replies are listed 'Best First'.
Re^2: need regular expression
by Corion (Patriarch) on Nov 02, 2005 at 08:12 UTC

    That one won't promote single-digit numbers to double-digit numbers.

    s/(\d?\d)(-\d?\d)-(\d?\d)/(2000+$1).sprintf("%02g", $2).sprintf("%02g" +,$3)/eg

    could do it, but that's similarly untested :-)

      The listed examples didn't indicate to me that we need to worry about anything other than the first number, and adding 2000 to a 1 digit number definitely results in a 4 digit one. :-)

      But if that's your spec, then try s/(\d?\d)-(\d?\d)-(\d?\d)/sprintf("20%02d-%02d-%02d", $1, $2, $3)/eg