1

さて、テキスト ファイルを複数のセクションに分割し、さらに複数のエントリに分割して<a>、各エントリの一部にタグを付けるようなものを作成しています。@section_nameリンクの作成に使用する必要があるインスタンス変数 があります。問題は、@section_name間違った見方をすると価値が失われるように見えることです。いくつかのコード:

def find_entries
  @sections.each do |section|
    @entries = section.to_s.shatter(/(some) RegEx/)
    @section_name = $1.to_s
    puts @section_name
    add_links
  end
end

def add_links
  puts "looking for #{@section_name} in #{@section_hash}"
  section_link = @section_hash.fetch(@section_name)
end

への呼び出しをコメントアウトするとadd_links、すべてのセクションの名前が吐き出されますが、含めると、次のようになります。

looking for  in {"contents" => "of", "the" => "hash"} 

どんな助けでも大歓迎です!

4

1 に答える 1

1

$1後のコードで使用できるグローバル変数です。最後の試合のキャプチャが$n含まれていますn-th (...)

"foobar".sub(/foo(.*)/, '\1\1')
 puts "The matching word was #{$1}" #=> The matching word was bar

"123 456 789" =~ /(\d\d)(\d)/
 p [$1, $2] #=> ["12", "3"]

@entries = section.to_s.shatter(/(some) RegEx/)そのため、ラインが適切にマッチしていないと思います。したがって、最初に一致したグループには何も含まれていません。$1nilを出力します。

于 2013-04-11T19:09:47.983 に答える