我正在用 F# 开发一个项目,我希望在这个项目中找到一种方法来识别两个字符串是否具有相同的结构。我知道有一些算法(比如 Levenshtein Distance)可以提供相似字符串在内容方面的近似值,但我更感兴趣的是比较字符串的实际结构。在结构与内容方面,请考虑以下示例:
根据编辑距离等算法,“07/14/2015”和“11/06/1999”将被归类为非常不同。但是,它们在结构上是相同的(日期)。
此外,一组全部以三个字母(“USA123”、“USA456”、“USA789”)开头的字符串在理想情况下会被识别为具有与其他六个字符串(例如“123123”或“USAUSA”)不同的结构".
我意识到这很可能是一个相当复杂的解决方案,但我想知道是否存在这样的事情,但我错过了,或者是否有人对此事有任何想法/想法。
最佳答案
虽然不是一个完整的答案,但你可以做一些非常基本的测试来捕捉你上面给出的例子:
- 准备一份字符类型列表。我的意思是区分大写、小写、数字、分隔符等。
- 比较两个字符串时,检查相同位置的字符是否属于同一组。这会给你
19/07/1983
和25/12/1853
是相似的,但是19/07/1983
和25/12/185A
不是。与USAUSA
和USA123
相同。
使识别更精确是创建越来越精确的组的问题...
关于string - 比较字符串结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31269829/