instance method
String#squeeze
(*::String::selector selectors) -> ::String
squeeze(*selectors) → new_string
string.c
View on GitHub ↗
static VALUE
rb_str_squeeze(int argc, VALUE *argv, VALUE str)
{
str = str_duplicate(rb_cString, str);
rb_str_squeeze_bang(argc, argv, str);
return str;
}
Returns a copy of self with each tuple (doubling, tripling, etc.) of specified characters “squeezed” down to a single character.
The tuples to be squeezed are specified by arguments selectors, each of which is a string; see Character Selectors.
A single argument may be a single character:
Example
'Noooooo!'.squeeze('o') # => "No!" 'foo bar baz'.squeeze(' ') # => "foo bar baz" 'Mississippi'.squeeze('s') # => "Misisippi" 'Mississippi'.squeeze('p') # => "Mississipi" 'Mississippi'.squeeze('x') # => "Mississippi" # Unused selector character is ignored. 'бессонница'.squeeze('с') # => "бесонница" 'бессонница'.squeeze('н') # => "бессоница"
A single argument may be a string of characters:
Example
'Mississippi'.squeeze('sp') # => "Misisipi" 'Mississippi'.squeeze('ps') # => "Misisipi" # Order doesn't matter. 'Mississippi'.squeeze('nonsense') # => "Misisippi" # Unused selector characters are ignored.
A single argument may be a range of characters:
Example
'Mississippi'.squeeze('a-p') # => "Mississipi" 'Mississippi'.squeeze('q-z') # => "Misisippi" 'Mississippi'.squeeze('a-z') # => "Misisipi"
Multiple arguments are allowed; see Multiple Character Selectors.
Related: see Converting to New String.
Ruby version changes
-
3.0
-
The following methods now return or yield
Stringinstances instead of subclass instances when called on subclass instances: [Bug #10845]
-