我正在使用以下正则表达式来在网页上进行hrefs.
\/static\/workout\/[A-Z]{1,4}032812[A-Z]{1,5}-EQB.html
Run Code Online (Sandbox Code Playgroud)
我想找到一种方法使正则表达式的032812部分动态化,这样该值将反映当前日期.例如,2012年3月31日,正则表达式如下所示:
\/static\/workout\/[A-Z]{1,4}033112[A-Z]{1,5}-EQB.html
Run Code Online (Sandbox Code Playgroud)
我尝试创建一个字符串
a = \/static\/workout\/[A-Z]{1,4}033112[A-Z]{1,5}-EQB.html
Run Code Online (Sandbox Code Playgroud)
然后
\ a \
Run Code Online (Sandbox Code Playgroud)
但这没用.有没有办法做到这一点.
小智 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/
Run Code Online (Sandbox Code Playgroud)
Ken*_*oom 17
我完全支持艾萨克的解决方案,但你也可以:
a = "\/static\/workout\/[A-Z]{1,4}" + "033112" + "[A-Z]{1,5}-EQB.html"
regex = Regexp.new(a)
stringtomatch =~ regex
Run Code Online (Sandbox Code Playgroud)