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

标签 ruby regex

我正在使用以下正则表达式在网页上移动 hrefs。

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

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

\/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/ 

关于ruby - 是否可以在 Ruby 中创建动态正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9918231/

相关文章:

ruby - Resque with Redis To Go 无法按预期工作

ruby-on-rails - Rails 4:Carrierwave/AWS - Excon::Errors::SocketError/getaddrinfo: nodename 或 servname 提供

ruby - 传递 Range#step 多个参数

ruby-on-rails - IntelliJ IDEA/RubyMine - 一次运行多个 rake 任务?

ruby - 是什么导致 bundler 中出现 "Your Ruby version is 2.2.3, but your Gemfile specified >= 2.2.3"?

regex - batch regex 将 reg query 命令的输出输出到一个变量

regex - 如何搜索一行中单词之间出现多个空格的情况

php preg_match 获取两个字符串之间的数字

java - 使用正则表达式匹配 Lua 多行字符串和注释

javascript - 为什么以下 if 语句排除与其余数组相同的数组?