gpt4 book ai didi

java - 在 Java 中查找一组值中的模式

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:23:10 25 4
gpt4 key购买 nike

有没有办法在 Java 中提取字符串列表中的通用模式?

例如,如果我们有一个值列表:

001-L1
002-L2
003-L3
004-L4
...

有没有办法推断出我们有 3 位数字,然后是“-”,然后是字母 L,最后是数字字符?

我认为它与公共(public)子字符串或类似的东西有关,但我还没有找到任何东西。

谢谢!

编辑:显然这不会是一个完美的识别,它只会返回一个基于数据的推荐。

我要构建的是接近 this 的东西.在视频中,当用户点击该列时,会建议将数据拆分为“:”。

最佳答案

我认为您可能想要“推断”一组字符串可能共有的模式,而不是使用正则表达式验证它们。这个问题可能属于模式识别。

  • 您可以申请Longest Common Substring (不是最长公共(public)子序列)算法在你的任何两个字符串上,首先。请注意,根据您的字符串列表,您可能会得到两个最长的公共(public)子字符串00-L,因此您需要照顾它。
  • 然后,当您得到一个公共(public)子串作为结果时,只需使用 contains()检查其他字符串中模式的方法。

只有当字符串之间的共同模式至少为几个字符时,此方法才有效。

编辑:

如果你想在给定的视频中实现类似的东西,你只需要根据特定的分隔符拆分字符串。一种简单而天真的方法:

  • 创建可能的分隔符列表,例如 :,.,-,,,::
  • 在您的所有 字符串中搜索特定分隔符的出现。 LCS 算法将不起作用,因为字符串可能具有共同的数据值(如视频中的"is"和“否”),这些值不用作分隔符。
  • split基于定界符的字符串,如果在所有(甚至大部分)字符串中都找到它!

可能有比这个更好的解决方案!

关于java - 在 Java 中查找一组值中的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40759351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com