Building an array of matching strings

I want to search through a block of text and build an array of all
strings contained within this text that match a given pattern. I know
the following hack will work, but it seems like a misuse of the gsub
method:

Assume that ‘text’ contains the block of text and that ‘pat’

is a Regexp instance containing the pattern to match.

matchingStrings = []
text.gsub(pat) {
|m|
matchingStrings << m
}

Is there a cleaner and elegant way to do this?

Thanks in advance.

On Nov 20, 2005, at 5:00 PM, Lloyd Z. wrote:

|m|
matchingStrings << m

}

Is there a cleaner and elegant way to do this?

matches = text.scan(…)

Hope that helps.

James Edward G. II

On 11/20/05, Lloyd Z. [email protected] wrote:

text.gsub(pat) {
Lloyd Z.
[email protected]
God bless you.

I think what you want is matchingStrings = text.scan(pat)

On Nov 20, 2005, at 3:00 PM, Lloyd Z. wrote:

|m|
matchingStrings << m

}

Is there a cleaner and elegant way to do this?

Thanks in advance.

result_array = text.scan(/pat/)

That will build an array in result_array of all the matches to /pat/

HTH-

-Ezra Z.
WebMaster
Yakima Herald-Republic Newspaper
[email protected]
509-577-7732

Ezra Z. [email protected] writes:

matchingStrings = []

result_array = text.scan(/pat/)

That will build an array in result_array of all the matches to /pat/

Aha! I had forgotten about the ‘scan’ method! Thanks to all of you who
responded.

What if we wanted to expand it a little? For instance, Iets say the
person has a typo like phat instead of pat. Is there a good method for
searching and returning CLOSEST matches but not exact?