String#sub all instances of pattern?

eg: str = "a b c d"
newStr = str.sub(" ", ", ")

gives me output a, b c d

what i want is a, b, c, d

ow do i make this happen sub isnt doing it for me i guess. I been
looking all through the ruby-doc to no avail.

···

--
Posted via http://www.ruby-forum.com/.

Hi --

···

On Mon, 29 Sep 2008, Nick Bo wrote:

eg: str = "a b c d"
newStr = str.sub(" ", ", ")

gives me output a, b c d

what i want is a, b, c, d

ow do i make this happen sub isnt doing it for me i guess. I been
looking all through the ruby-doc to no avail.

Check out String#gsub, and also Array#join.

David

--
Rails training from David A. Black and Ruby Power and Light:
   Intro to Ruby on Rails January 12-15 Fort Lauderdale, FL
   Advancing with Rails January 19-22 Fort Lauderdale, FL *
   * Co-taught with Patrick Ewing!
See http://www.rubypal.com for details and updates!

try gsub instead of sub.

Jamey

···

On Sun, Sep 28, 2008 at 9:04 PM, Nick Bo <bornemann1@nku.edu> wrote:

eg: str = "a b c d"
newStr = str.sub(" ", ", ")

gives me output a, b c d

what i want is a, b, c, d

ow do i make this happen sub isnt doing it for me i guess. I been
looking all through the ruby-doc to no avail.
--
Posted via http://www.ruby-forum.com/\.

You want to use str.gsub rather than str.sub. Compare the documentation of the two:

------------------------------------------------------------ String#gsub
      str.gsub(pattern, replacement) => new_str
      str.gsub(pattern) {|match| block } => new_str

      From Ruby 1.9.0

···

On Sep 28, 2008, at 9:04 PM, Nick Bo wrote:

eg: str = "a b c d"
newStr = str.sub(" ", ", ")

gives me output a, b c d

what i want is a, b, c, d

ow do i make this happen sub isnt doing it for me i guess. I been
looking all through the ruby-doc to no avail.

------------------------------------------------------------------------
      Returns a copy of _str_ with _all_ occurrences of _pattern_
      replaced with either _replacement_ or the value of the block. The
      _pattern_ will typically be a +Regexp+; if it is a +String+ then no
      regular expression metacharacters will be interpreted (that is
      +/\d/+ will match a digit, but +'\d'+ will match a backslash
      followed by a 'd').

[...]

------------------------------------------------------------- String#sub
      str.sub(pattern, replacement) => new_str
      str.sub(pattern) {|match| block } => new_str

      From Ruby 1.9.0
------------------------------------------------------------------------
      Returns a copy of _str_ with the _first_ occurrence of _pattern_
      replaced with either _replacement_ or the value of the block. The
      _pattern_ will typically be a +Regexp+; if it is a +String+ then no
      regular expression metacharacters will be interpreted (that is
      +/\d/+ will match a digit, but +'\d'+ will match a backslash
      followed by a 'd').

[...]

Hope this helps,

Mike

--

Mike Stok <mike@stok.ca>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.

Nick Bo wrote:

eg: str = "a b c d"
newStr = str.sub(" ", ", ")

gives me output a, b c d

what i want is a, b, c, d

ow do i make this happen sub isnt doing it for me i guess. I been
looking all through the ruby-doc to no avail.

gsub

···

--
RMagick: http://rmagick.rubyforge.org/

perfect thanks

···

--
Posted via http://www.ruby-forum.com/.