使两个字符串匹配,即使其中一个包含拼写错误

时间:2015-09-16 09:46:28

标签: ruby regex

我有一个array_subscribed_players,我正在检查这个数组是否包含这样的字符串:

array_subscribed_players.include?(subscription.user.full_name_inversed.downcase.strip)

我正在寻找一种方法使这个表达式返回true,即使我提供的字符串与array_subscribed_players中包含的字符串不完全匹配。假设有一两个不同的字母,或者是否有一个或多或少的字母。

3 个答案:

答案 0 :(得分:0)

对于使用三元组等方法进行模糊搜索的宝石,您可能会做得最好,然后尝试一下您认为足够高的分数作为匹配。

可以使用各种宝石:寻找三元组,模糊匹配等。

答案 1 :(得分:0)

你想要的是模糊匹配算法。您可以开始使用solution suggested in this answer或其中一种模糊匹配的Ruby实现。

一旦你有了算法(打包为方法),只需在数组的每个项目上调用该方法,而不是使用标准字符串相等。

答案 2 :(得分:0)

您可以使用宝石类似的文字。与两个字符串相比,它提供了类似的百分比。你必须为你正在寻找的%相似性构建逻辑。

https://rubygems.org/gems/similar_text