On 04/25/2011 12:02 PM, Josh Cheek wrote: > On Mon, Apr 25, 2011 at 1:51 PM, Joel VanderWerf > <joelvanderwerf / gmail.com>wrote: > >> On 04/25/2011 11:44 AM, Michelle Pace wrote: >> >>> Hello, I need to make the first string below into the second string. >>> That is, only single white spaces are permitted. >>> >>> "1/4 WELDING LEVER FRONT DRW 14844-C MAT WMA1CM-WLFRONT" >>> into >>> "1/4 WELDING LEVER FRONT DRW 14844-C MAT WMA1CM-WLFRONT" >>> >>> >>> >>> I want to use the sub! method. Why does the below code not work? Is my >>> pattern incorrect? >>> >>> descrip = "1/4 WELDING LEVER FRONT DRW 14844-C MAT WMA1CM-WLFRONT" >>> descrip.sub!(/\s+/,' ') >>> puts descrip >>> >> >> sub! only affects the *first* match. You can substitute globally with gsub. >> Also you might as well only match 2 or more spaces: >> >> descrip.gsub!(/\s\s+/,' ') >> >> > > I think the original regex is better, because leads to more consistent > results: > > "hello\tworld !".gsub(/\s\s+/,' ') # => "hello\tworld !" > "hello\tworld !".gsub(/\s+/,' ') # => "hello world !" > Good point, but it depends on what you're trying to be consistent with. Maybe the goal is to squeeze space, but preserve tab layout for readability.