Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I search an array using a partial string, and return the index?

I want to search through an array using a partial string, and then get the index where that string is found. For example:

a = ["This is line 1", "We have line 2 here", "and finally line 3", "potato"]
a.index("potato") # this returns 3
a.index("We have") # this returns nil

Using a.grep will return the full string, and using a.any? will return a correct true/false statement, but neither returns the index where the match was found, or at least I can't figure out how to do it.

I'm working on a piece of code that reads a file, looks for a specific header, and then returns the index of that header so it can use it as an offset for future searches. Without starting my search from a specific index, my other searches will get false positives.

like image 930
user1976679 Avatar asked Jan 16 '13 00:01

user1976679


1 Answers

Use a block.

a.index{|s| s.include?("We have")}

or

a.index{|s| s =~ /We have/}
like image 73
sawa Avatar answered Nov 15 '22 15:11

sawa