我正在使用以下正则表达式在网页上进行hrefs。
\/static\/workout\/[A-Z]{1,4}032812[A-Z]{1,5}-EQB.html
我想找到一种方法使正则表达式的032812部分动态化,这样该值将反映当前日期。例如,在2012年3月31日,正则表达式将如下所示:
\/static\/workout\/[A-Z]{1,4}033112[A-Z]{1,5}-EQB.html
我尝试创建一个字符串
a = \/static\/workout\/[A-Z]{1,4}033112[A-Z]{1,5}-EQB.html
然后
\ a \
但这不起作用。有没有办法做到这一点。
答案 0 :(得分:60)
您可以像使用字符串一样使用#{}
。
1.9.2p290 :001 > some_string = "033112"
=> "033112"
1.9.2p290 :002 > a_regex = /[A-Z]{1,4}#{some_string}[A-Z]{1-5}-EQB.html/
=> /[A-Z]{1,4}033112[A-Z]{1-5}-EQB.html/
答案 1 :(得分:17)
我完全支持艾萨克的解决方案,但你也可以:
a = "\/static\/workout\/[A-Z]{1,4}" + "033112" + "[A-Z]{1,5}-EQB.html"
regex = Regexp.new(a)
stringtomatch =~ regex