2016-06-18 8 views
1

私はruby regexpでhtmlを変更する必要があります。Rubyの動的正規表現を構築する方法は?

これはrubularで働く正規表現です:

/(<\s*?div\s*?id="my_id"\s*?>.*?<\/div>)/im 

私は正規表現のmy_id一部を変更することができるようにしたいので、私はこのコードは再使用されます。

def extract_div_with_id(id) 
    # str = somehow turn this regex into string 
    str.sub!('my_id', id) 
    regex = Regexp.new(str, Regexp::IGNORECASE | Regexp::MULTILINE) 
    ... 
end 

この関数の最初の行(コメントアウトされている行)はどのように記述すればよいですか?

PS。
Nokogiriは機能しません。 Doctypeがxhtmlであるか、phpディレクティブなどが含まれているため、regexpを使いたいので、私は知らないし気にしません。 ノコギリまたは正規表現以外のソリューションを使用するように教えてください。

答えて

3

あなたは、文字列と同様に補間を使用することができます。

/(<\s*?div\s*?id="#{my_id}"\s*?>.*?<\/div>)/im 
+0

まあ、私はこの答えを受け入れるだろうが、私はちょうどそれを削除しますので、人々は狂ったように私の質問をd​​ownvotingています。しかし、何が間違っているのかはわかりません。私はこの質問を20分間開いたままにしておき、何が間違っているのかフィードバックを得ることができます。 –

関連する問題