string#sub all instances of pattern???

N

Nick Bo

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.
 
D

David A. Black

Hi --

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!
 
M

Mike Stok

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.

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
------------------------------------------------------------------------
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 <[email protected]>
http://www.stok.ca/~mike/

The "`Stok' disclaimers" apply.
 
T

Tim Hunter

Nick said:
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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top