9

部分的な文字列を使用して配列を検索し、その文字列が見つかったインデックスを取得したいと思います。例えば:

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

Usinga.grepは完全な文字列を返し、usinga.any?は正しいtrue / falseステートメントを返しますが、どちらも一致が見つかったインデックスを返さないか、少なくともその方法がわかりません。

私は、ファイルを読み取り、特定のヘッダーを探し、そのヘッダーのインデックスを返すコードの一部に取り組んでいます。これにより、将来の検索のオフセットとして使用できるようになります。特定のインデックスから検索を開始しないと、他の検索で誤検知が発生します。

4

1 に答える 1

22

ブロックを使用します。

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

また

a.index{|s| s =~ /We have/}
于 2013-01-16T00:13:15.820 に答える