[英]C# comparing similar strings
我有一个带有一些文件名(LIST1)的泛型,另一个是带有完整名称列表(LIST2)的biggeneric。 我需要将LIST1中的名称与LIST2中的相似名称进行匹配。 例如
LIST1
- **MAIZE_SLIP_QUANTITY_3_9.1.aif**
LIST 2
1- TUTORIAL_FAILURE_CLINCH_4.1.aif
2- **MAIZE_SLIP_QUANTITY_3_5.1.aif**
3- **MAIZE_SLIP_QUANTITY_3_9.2.aif**
4- TUTORIAL_FAILURE_CLINCH_5.1.aif
5- TUTORIAL_FAILURE_CLINCH_6.1.aif
6- TUTORIAL_FAILURE_CLINCH_7.1.aif
7- TUTORIAL_FAILURE_CLINCH_8.1.aif
8- TUTORIAL_FAILURE_CLINCH_9.1.aif
9- TUTORIAL_FAILURE_PUSH_4.1.aif
我已经阅读了有关Levenshtein距离的信息,并在Framework( SignumFramework Utilities )中使用了它的实现。 它在第2行和第3行中向我返回distance = 1。但是在我的情况下,第3行比第2行更匹配。
还有另一种方法可以更好地比较相似的字符串吗? 有什么更灵活的方法吗?
作为字符串进行比较时,“ 9.2”的匹配度比“ 5.1”的“ 5.1”更好。 如果要对版本号进行数字评估,则必须解析字符串,以便可以分别比较字符串部分和数字部分。
有一个simlar问题在这里 ,也许有些答案会出现有关?
正则表达式可用于获取与名称匹配的项目。 可以在比赛中的正则表达式组中收集版本号,并将其解析为.net对象(例如十进制),您可以使用该对象比较哪个是最接近的。
这个SO问题有相当详尽的答案。 底部的链接是我为soundex,双重元音,PHP相似性和levenstein建立了C#实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.