Ruby version of preg_match_all?

I’m having a hard time finding a way of archiving the functionality of
PHP’s preg_match_all[1] in Ruby. Am I just not looking in the right
places? I have a string like “SomethingCool SomethingWild Something
AnotherCool” and want to use a regular expression, like /(\w+Cool)/, to
get all the *Cool words back in an array ([“SomethingCool”,
“AnotherCool”]).

[1] http://dk2.php.net/preg_match_all

/ David

I guess String#scan will do it:

  "SomethingCool SomethingWild".scan(/(\w+Cool)/)

Regards,

  Michael

···

On Fri, Sep 19, 2003 at 10:26:57PM +0900, David Heinemeier Hansson wrote:

I'm having a hard time finding a way of archiving the functionality of
PHP's preg_match_all[1] in Ruby. Am I just not looking in the right
places? I have a string like "SomethingCool SomethingWild Something
AnotherCool" and want to use a regular expression, like /(\w+Cool)/, to
get all the *Cool words back in an array (["SomethingCool",
"AnotherCool"]).

Try String#scan:

“SomethingCool SomethingWild Something AnotherCool”.scan(/\b(\S+Cool)\b/)

HTH,

Nathaniel

<:((><

···

David Heinemeier Hansson [mailto:david@loudthinking.com] wrote:

I’m having a hard time finding a way of archiving the functionality
of PHP’s preg_match_all[1] in Ruby. Am I just not looking in the
right places? I have a string like “SomethingCool SomethingWild
Something AnotherCool” and want to use a regular expression, like
/(\w+Cool)/, to get all the *Cool words back in an array
([“SomethingCool”, “AnotherCool”]).

Hi,

I’m having a hard time finding a way of archiving the functionality of
PHP’s preg_match_all[1] in Ruby. Am I just not looking in the right
places? I have a string like “SomethingCool SomethingWild Something
AnotherCool” and want to use a regular expression, like /(\w+Cool)/, to
get all the *Cool words back in an array ([“SomethingCool”,
“AnotherCool”]).

String#scan might be what you’re looking for:

“cool wild anothercool”.scan(/\b\w*cool\b/)
[“cool”, “anothercool”]

Hope this helps,

Bill

···

From: “David Heinemeier Hansson” david@loudthinking.com