in reply to Re: need regular expression
in thread need regular expression

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 :-)

Replies are listed 'Best First'.
Re^3: need regular expression
by tilly (Archbishop) on Nov 02, 2005 at 08:17 UTC
    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