如何检查两个字符串是否在C#中是部分匹配?

时间:2011-03-26 20:00:19

标签: c# string match partial

  

可能重复:
  Are there any Fuzzy Search or String Similarity Functions libraries written for C#?

我正在创建一个应用程序,除了用户输入歌曲或艺术家或专辑名称之外,然后将查看字符串数组或ArrayList以查找任何可能的匹配。

将根据匹配百分比计算自动建议。

例如

如果用户输入链接prk ,则会找到Linkin ParkLink 80Link Wray,但匹配百分比将因所有

而不同

假设该集合仅搜索艺术家收藏中的艺术家姓名和歌曲收藏中的歌曲名称。

(百分比数字只是为了解释)

Linkin Park - 98%
Link Wray -82%
Link 80 - 62%

解决方案不一定是C#代码,任何正则表达式或伪代码都会很好,但应该可以在C#中实现。

2 个答案:

答案 0 :(得分:11)

通常使用Levenshtein distance的实现也称为编辑距离。这将基于将一个字符串转换为另一个字符串所需的最小编辑次数来查找匹配,将单个字符的所有插入,删除或替换计算为“成本”的度量 - 候选者是具有最低成本的字符串

以下是an article的链接,其中包含C#中的通用实现。

答案 1 :(得分:8)