【发布时间】:2014-07-28 16:31:05
【问题描述】:
我想知道是否有一个众所周知的算法来推断文件名模式,给定一组示例文件名作为输入。采用以下示例文件名:
ABC_348093423.csv
i.ABC_348097340.csv
ABC_348099322.csv
i.GHI_348099324.csv
p.ABC_348101632.csv
DEF_348101736.csv
p.ABC_348101633.csv
ABC_348102548.csv
理想情况下,我希望在结果集中得到的模式类似于:
*.ABC_*.csv
*.DEF_*.csv
*.GHI_*.csv
即使像下面这样的结果值仍然是一个很好的起点:
i.ABC_348*.csv
p.ABC_348*.csv
...
我为什么需要这个?
我有一个现有的应用程序,用户可以在其中输入“文件掩码”来定义一个存储桶,以便将传入的输入文件分组到其中。根据每个文件掩码(按顺序)评估传入文件,如果文件与掩码匹配,则文件进入该文件掩码的存储桶......结束。
我想要实现的是,给定最后处理的 X 个文件名,向用户提供有关新文件掩码的建议。 它不一定是完美的。这只是一个用户辅助功能。
我使用的是什么语言?
我的应用程序是用 Java 编写的,因此任何可以执行此类功能的第三方 Java 库都是理想的解决方案。否则,如果有一个众所周知的算法可以解决这个问题,那么我可以自己实现它。
【问题讨论】:
-
您在寻找正则表达式模式吗?
-
分析字符串以识别模式几乎是一个独立的数学领域。不会有自动库来计算这个。
-
离题:太宽泛和对异地资源的建议
-
不寻找 REGEX 模式,恰恰相反。给定一组输入,输出将是与输入匹配的模式。
-
所以你基本上想将文件分组到集群中,然后找到一个可以区分集群的正则表达式模式。
标签: java pattern-matching extrapolation