On 27/06/06, Ben Nagy <ben / iagu.net> wrote: > I was messing with: > > str.scan(/(..)(.*)/).first.map {|e| e.length>4?e.scan(/.{1,4}/):e}.join('-') > > which is awful, then I got: > > str.sub(/\d{2}/,'\0-').gsub(/\d{4}(?!$)/,'\0-') > > Which is... probably even worse. :P str.gsub(/(?:^\d{2}|\d{4}(?=.))/, '\0-') Paul