C#比较相似的字符串

Osc*_*ley 1 c# string compare similarity

我有一些带有一些文件名(LIST1)的泛型和另一个带有完整名称列表的大型通用(LIST2).我需要将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
Run Code Online (Sandbox Code Playgroud)

我已经阅读了Levenshtein距离并在框架(SignumFramework Utilities)中使用了它的实现. 它在第2行和第3行返回距离= 1.但在我的情况下,第3行比第2行更好.

还有另一种方法可以比较相似的字符串吗?更灵活的东西?

Guf*_*ffa 5

当比较为字符串时,"9.2"与"9.1"的"5.1"不是更好的匹配.如果要以数字方式评估版本号,则必须解析字符串,以便可以分别比较字符串部分和数字部分.