是否可以在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