【问题标题】:Regex: Simple search regex? [closed]正则表达式:简单的搜索正则表达式? [关闭]
【发布时间】:2012-07-23 10:29:06
【问题描述】:

我需要一个正则表达式来帮助我搜索数据库。

应该可以做到:

  1. 在单词搜索中。示例:ell => 你好,Yello,Mellt,....
  2. 相似词:示例:gold =>hold, golt, cost, ...

这可能与正则表达式有关吗?

如果是,这个正则表达式是什么样子的?

问候

【问题讨论】:

  • 什么样的数据库?什么样的语言可以让你在数据库中进行搜索?
  • 这有关系吗?这是原始线程。见底部。我只需要放置一个正则表达式。 *.com/questions/11609697/expressjs-search-query-api 据我所知 mongoosejs 没有全文搜索,搜索选项
  • 这是相关的,因为正则表达式在所有语言/工具中都不相同。如果我们知道您使用的技术,我们可能会建议其他更好的方法来解决您的问题。

标签: regex search


【解决方案1】:
  1. 通常通过带有通配符的LIKE 运算符来完成:

    WHERE column LIKE '%ell%'
    
  2. 可以使用字符串相似度度量来完成,例如 Levenshtein 距离。 Here 是 MySQL 作为存储过程的实现。然而,对于几乎所有字符串相似度算法,“gold”和“cost”相差甚远。

【讨论】:

  • mongodb 有类似 LIKE 的东西吗?
【解决方案2】:

这是一个非常笼统的问题。我只能推荐简单的解决方案:

让我们来看你所说的第一个例子:

$your_root = "el"

然后:

$string =~ /\w*$your_root\w*/

匹配 'h el lo', 'y el lo' 但也匹配 'iafbi342b el erger64'

【讨论】: