Подтвердить что ты не робот

Возможно ли создать динамическое регулярное выражение в Ruby

Я использую следующее регулярное выражение для продвижения 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 \

но это не сработало. Есть ли способ сделать это.

4b9b3361

Ответ 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/ 

Ответ 2

Я полностью поддерживаю решение Isaac, но вы также можете:

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