是否可以在Ruby中创建动态正则表达式

我正在使用以下正则表达式来在网页上进行hrefs游行。

\/static\/workout\/[AZ]{1,4}032812[AZ]{1,5}-EQB.html 

我想找到一种方法使正则表达式的032812部分动态化,这样该值将反映当前日期。 例如,2012年3月31日,正则表达式如下所示:

 \/static\/workout\/[AZ]{1,4}033112[AZ]{1,5}-EQB.html 

我尝试创建一个字符串

 a = \/static\/workout\/[AZ]{1,4}033112[AZ]{1,5}-EQB.html 

然后

 \ a \ 

但这没用。 有没有办法做到这一点。

您可以像在字符串中一样使用#{}

 1.9.2p290 :001 > some_string = "033112" => "033112" 1.9.2p290 :002 > a_regex = /[AZ]{1,4}#{some_string}[AZ]{1-5}-EQB.html/ => /[AZ]{1,4}033112[AZ]{1-5}-EQB.html/ 

我完全支持艾萨克的解决方案,但你也可以:

 a = "\/static\/workout\/[AZ]{1,4}" + "033112" + "[AZ]{1,5}-EQB.html" regex = Regexp.new(a) stringtomatch =~ regex