gpt4 book ai didi

regex - 如何使用 Perl 进行不精确的字符串比较?

转载 作者:行者123 更新时间:2023-12-02 00:27:11 47 4
gpt4 key购买 nike

给定两个字符串,我想找到指定长度的所有公共(public)子字符串,但允许一个字符不同。

比如s1是'ATCAGC',s2是'ATATCGAC',指定长度是3,那么我' d 想要沿着这些行输出:

ATC from s1 matches ATA, ATC from s2
TCA from s1 matches TAA, TCG from s2

问题

  • 我可以使用简单的正则表达式来做到这一点吗?
  • 如果没有,Perl 中是否有此模块?

最佳答案

首先,“perl hamming distance”的 google 结果找到了一个 perlmonks thread提到Text::LevenshteinXS ,各种典型的实现,以及一个可爱的异或技巧:

sub hd{ length( $_[ 0 ] ) - ( ( $_[ 0 ] ^ $_[ 1 ] ) =~ tr[\0][\0] ) }

您应该浏览关于 String metrics 的维基百科文章如果不熟悉 Levenshtein 距离或 Hamming 距离。

关于regex - 如何使用 Perl 进行不精确的字符串比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8459585/

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