ruby-on-rails - ruby rails : Unable to retrieve regex from database

标签 ruby-on-rails ruby regex

我有一组正则表达式,存储在数据库的某个表中。我检索它们并使用这些正则表达式应用一些操作,但它们没有按预期工作。

junkremoveregex=[]
    regexes = JunkRemoveLineRegex.find(:all,:select => 'regex')

    regexes.each do |regex|
      junkremoveregex << regex.regex
    end

    puts junkremoveregex

    junktest=/note/

    junkremoveregexset=Regexp.union(junkremoveregex)
    line ="note thhat yo yo honey singh".downcase
    if(line.match(junkremoveregexset))
      puts "note was found in line"
    else
      puts "No line was found"
    end

这段代码的输出是没有找到行。

如果我使用这段代码,那么它会完美地工作

junkremoveregex=[]
    regexes = JunkRemoveLineRegex.find(:all,:select => 'regex')

    regexes.each do |regex|
      junkremoveregex << regex.regex
    end

    puts junkremoveregex

    junktest=/note/

    junkremoveregexset=Regexp.union(junktest)
    line ="note thhat yo yo honey singh".downcase
    if(line.match(junkremoveregexset))
      puts "note was found in line"
    else
      puts "No line was found"
    end

Puts junkremoveregex 给出/note/

如何解决这个问题?

最佳答案

BroiSatse 所述,您的正则表达式以字符串格式出现,您需要先将其转换回正则表达式格式。为此你需要使用这个 gem http://rubygems.org/gems/to_regexp

"/note/".to_regexp
#=> /note/

或者在你的情况下

junkremoveregexset.to_regexp

关于ruby-on-rails - ruby rails : Unable to retrieve regex from database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26254542/

相关文章:

ruby - Redis-rb客户端队列

ruby-on-rails - Rails 路由多对一

javascript - 拥有混合 Javascript 和 ruby​​ 的文件是否正确? IE。 (.js.erb)?

ruby-on-rails - 样式表或 JavaScript 文件的 Rails 404 错误

C SLRE 正则表达式库不起作用

ruby-on-rails - Ruby/Rails 文本解析为对象

相当于 Rails try 方法的 Javascript

ruby-on-rails - 在 Rails 应用程序中安装 bundle 时出错

ruby-on-rails - 为什么人们不在 Rspec 中访问数据库?

regex - 在 R 中的模式/分隔符之间提取字符串