我需要使用ruby regexp更改html。
这是在rubular中运行的正则表达式:
/(<\s*?div\s*?id="my_id"\s*?>.*?<\/div>)/im
我将重新使用此代码,因此我希望能够更改regexp的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。 请不要告诉我使用nokogiri或一些非正则表达式解决方案。
答案 0 :(得分:3)
您可以像使用字符串一样使用插值:
/(<\s*?div\s*?id="#{my_id}"\s*?>.*?<\/div>)/im