I would use: while str.gsub!( ... ); end "block ... while" is a 'regretted' feature (http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/6768). 2007/9/24, Phrogz <phrogz / mac.com>: > I want to keep running gsub! on a string until it returns nil. How do > you prefer to do this? > > true while str.gsub!( ... ) > > while str.gsub!( ... ); end > > begin > done = !str.gsub!( ... ) > end until done > > begin > made_replacement = str.gsub!( ... ) > end while made_replacement > > ...some other way?