私は動的に構築されている正規表現をしました:名前付きキャプチャグループは、動的な正規表現では動作しません
permitted_keys = %w[attachment avatar banner document]
# my actual key
key = 'banner_content_type'
# g1 will be the captured grouped or nil
/(?<g1>#{permitted_keys.join('|')})_content_type/ =~ key
p "g1 #{g1.inspect}"
問題動的にこの正規表現を構築し、私は次のようなエラーになってるということです:
を/(?<g1>attachment|avatar|banner|document)_content_type/ =~ key
それは完全に動作します:私はこのように、静的正規表現に値を入れただし
NameError (undefined local variable or method `g1' for...
、。
最初のアプローチの問題点は何ですか? TIA。
PS:
私はすでにターミナルで次比較しました:
/(?<g1>#{permitted_keys.join('|')})_content_type/ ==
/(?<g1>attachment|avatar|banner|document)_content_type/
を...そして、それはtrue
を返します。
あなたは以下のリンクの例を確認することができます。
おかげで非常に有用な答えのために:) –