Ответ 1
Вы можете использовать #{}
так же, как в строке.
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/
Я использую следующее регулярное выражение для продвижения hrefs на веб-странице.
\/static\/workout\/[A-Z]{1,4}032812[A-Z]{1,5}-EQB.html
Я хотел бы найти способ сделать часть регулярного выражения 032812 динамической, чтобы значение отражало текущую дату. Например, 31 марта 2012 года регулярное выражение будет выглядеть так:
\/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 \
но это не сработало. Есть ли способ сделать это.
Вы можете использовать #{}
так же, как в строке.
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/
Я полностью поддерживаю решение Isaac, но вы также можете:
a = "\/static\/workout\/[A-Z]{1,4}" + "033112" + "[A-Z]{1,5}-EQB.html"
regex = Regexp.new(a)
stringtomatch =~ regex