string - 比较字符串结构

标签 string algorithm f#

我正在用 F# 开发一个项目,我希望在这个项目中找到一种方法来识别两个字符串是否具有相同的结构。我知道有一些算法(比如 Levenshtein Distance)可以提供相似字符串在内容方面的近似值,但我更感兴趣的是比较字符串的实际结构。在结构与内容方面,请考虑以下示例:

根据编辑距离等算法,“07/14/2015”和“11/06/1999”将被归类为非常不同。但是,它们在结构上是相同的(日期)。

此外,一组全部以三个字母(“USA123”、“USA456”、“USA789”)开头的字符串在理想情况下会被识别为具有与其他六个字符串(例如“123123”或“USAUSA”)不同的结构".

我意识到这很可能是一个相当复杂的解决方案,但我想知道是否存在这样的事情,但我错过了,或者是否有人对此事有任何想法/想法。

最佳答案

虽然不是一个完整的答案,但你可以做一些非常基本的测试来捕捉你上面给出的例子:

  1. 准备一份字符类型列表。我的意思是区分大写、小写、数字、分隔符等。
  2. 比较两个字符串时,检查相同位置的字符是否属于同一组。这会给你 19/07/198325/12/1853 是相似的,但是 19/07/1983 25/12/185A 不是。与 USAUSAUSA123 相同。

使识别更精确是创建越来越精确的组的问题...

关于string - 比较字符串结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31269829/

相关文章:

c - 为什么下面的代码给出了垃圾值?

algorithm - 衡量/强制执行客户 Web 请求配额的技术

algorithm - 查找具有重复项的数组的排列。为什么在递归中按值传递(C++实现)

performance - 算法运行时间

algorithm - F# 从元组到枚举列表的转换

php - 当一个字符串的开头与另一个不同时?

Python:为什么 partition(sep) 比 split(sep, maxsplit=1) 快

silverlight - Windows Phone 上的 F# 引用

f# - 在 F# 中继续使用相同的列表

python - 在Python中比较两个字符串哪种方法更好?我想知道哪个更快