Chip, your solution worked beautifully. It didn't expand all of the years to four digits, but the new database app will take care of that. I really appreciate the help.
Best wishes, Marv On 8/3/06, Charles E Campbell Jr <[EMAIL PROTECTED]> wrote:
Marv Boyes wrote: > > For example, let's say I have some dates that look like this: > > 7-30-05 > 12-5-2006 > 10-2-06 > > What I'd like to end up with is this... > > 07/30/2005 > 12/05/2006 > 10/02/2006 > > ...without, of course, having to re-type every single one by hand. ;) The following will do the trick, albeit you do need vim 7.0 for it: %s/\(\d\{1,2}\)-\(\d\{1,2}\)-\(\d\{2,4}\)/\=printf('%02d\/%02d\/%4d',submatch(1),submatch(2),(submatch(3) < 100)? (2000+submatch(3)) : submatch(3))/ Explanation: \d\{1,2} --- match 1 to 2 digits \(...\) ---- save this matching subexpression for later \= ---- execute the following expression submatch(...) ---- use the subsexpression matched earlier Regards, Chip Campbell