【问题标题】:ActiveRecord regular-expression search by whole wordActiveRecord 正则表达式按整个单词搜索
【发布时间】:2015-04-14 23:14:28
【问题描述】:

我想通过关键字搜索 ActiveRecord 模型 Product,但我只想匹配其 description 中的整个单词而不是任意子字符串。

假设我有字符串

'the packaging May Vary'

作为Productdescription,则使用关键字'aging' 进行的搜索不应匹配,但'packaging' 的搜索匹配。所以按单词匹配,字符串的开头或结尾。我想做这样的事情:

Product.where("description ~* ?", "Regexp")

我应该用什么替换正则表达式,比如"%[^|| ]#{string}[$|| ]%"

【问题讨论】:

    标签: sql ruby-on-rails regex activerecord sql-like


    【解决方案1】:
    Product.where("description ~* ?", "\m#{string}\M")
    

    \m 仅匹配单词的开头,\M 仅匹配单词的结尾。更多信息在这里:http://www.postgresql.org/docs/9.0/static/functions-matching.html

    【讨论】:

      猜你喜欢
      • 2015-03-16
      • 2020-01-25
      • 2012-03-10
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 2022-12-05
      • 2010-11-15
      • 2021-12-30
      相关资源
      最近更新 更多