regex匹配monid条件



我有一个item[:name],我希望能够使用

(item[:name].scan(/[a-z0-9s]/i).join rescue "") =~ Regexp.new(business.scan(/[a-z0-9s]/i).join, true)

作为mongoid中的条件。有办法做到这一点吗?我想到的唯一解决方案是获取所有项,然后遍历该数组,在该时间点执行正则表达式。

这样做的目的是在网站搜索"Johns"时找到"John’s",反之亦然。

谢谢

这是我最终使用的。

def self.find_by_name_or_organization(business = nil)
  businesses = self.all(:order => "name ASC")
  businesses.delete(nil)
  if business && !(business.nil? || business.to_s == '')
    final_business_array = Array.new
    businesses.each do |item|
      if (item[:organization].scan(/[a-z0-9s]/i).join rescue "") =~ Regexp.new(business.scan(/[a-z0-9s]/i).join, true) ||
        (item[:name].scan(/[a-z0-9s]/i).join rescue "") =~ Regexp.new(business.scan(/[a-z0-9s]/i).join, true)
          final_business_array.push(item)
      end
    end
    final_business_array
  else
    businesses
  end
end

相关内容

  • 没有找到相关文章

最新更新