■環境
ruby -v
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
■質問
正規表現での式展開について教えてください。
lineという文があり、内容は下記になります。
line = "hoge tako ika ikura uni ebi kani"
「hoge」と「ika」という2つのキーワードがともに含まれている場合、match判定を行いたい。
line.match(/hoge/&&/ika/)
とすればマッチする。キーワード登録が複数パターンある場合、
wrod = ”hoge uni”
keyword = word.gsub(/\s/, '/&&/')
keywrod => "hoge/&&/uni"
式展開を行うとnilが帰ってきます。
pry(main)> line.match(/#{keyword}/)
=> nil
式展開だけ確認すると
pry(main)> p (/#{keyword}/)
/hoge/&&/uni/
=> /hoge/&&/uni/
となり、「/」の前に「\」のエスケープシーケンスが挿入され、matchがnilになります。
こちら式展開が
(/#{keyword}/) => (/hoge/&&/ika/)
とするのはどのようにすればよいのでしょうか。
お手数ですがお知恵を拝借いただけないでしょうか。
回答5件
あなたの回答
tips
プレビュー