Java的近似正则表达式库?

时间:2010-07-17 20:20:26

标签: java regex approximate

我刚刚编写了一些近似字符串匹配的代码。我想将我的天真算法与在JVM上运行的更成熟的实现进行对比。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

我在本网站的其他地方找到了类似问题的答案。

  

Commons Lang实施了Levenshtein距离   http://commons.apache.org/lang/api-release/org/apache/commons/lang/StringUtils.html

     

Commons Codec有soundex和metaphone的实现   http://commons.apache.org/codec/api-release/org/apache/commons/codec/language/Soundex.html
  http://commons.apache.org/codec/api-release/org/apache/commons/codec/language/Metaphone.html

source

  

Lucene( http://lucene.apache.org/)也实现了Levenshtein编辑距离。

source:zarawesome)

答案 1 :(得分:0)

多年前,我在大型机的FORTRAN程序中重新发明了这个轮子:)

当我自豪地告诉互联网上的其他人我的算法时,他们笑了起来,并指出了这个区域的两个(四个?)大牌:

这些是用于比较相似字符串的大量序列的算法。内存要求约为m + n,其中m和n是字符串的大小,运行时约为m * n

Gunslinger47提到了Levenshtein,Soundex和Metaphone。 Levenshtein也是计算字符串距离的有力手段,但它更适合“普通”文本。 Soundex和Metaphone计算一个短字符串,用于在人类说话时对字符串的声音进行编码......它们在大约3个音节后变得无效,它们真正用于人类语言中的单词,而不是基因组串等。< / p>

修改

哎呀,我刚刚在你引用的文章的底部找到了我的4个大牌。所以你已经意识到了这些。我认为,如果你搜索这些名称,“Java”应该找到你的实现。 Here's the first one I found