如何使用 Perl 进行不精确的字符串比较?
给定两个字符串,我想找到指定长度的所有公共子字符串,但允许一个字符不同。
例如,如果 s1 是 'ATCAGC'
,s2 是 'ATAATCGAC'
,指定的长度是 3
,那么我想要输出沿着这些思路:
ATC from s1 matches ATA, ATC from s2
TCA from s1 matches TAA, TCG from s2
问题
- 我可以使用简单的正则表达式来做到这一点吗?
- 如果没有,Perl 中有这个模块吗?
Given two strings, I want to find all common substrings of a specified length, but allowing one character to be different.
For example, if s1 is 'ATCAGC'
, s2 is 'ATAATCGAC'
, and the specified length is 3
, then I'd want output along these lines:
ATC from s1 matches ATA, ATC from s2
TCA from s1 matches TAA, TCG from s2
Questions
- Can I do so with a simple regex?
- If not, is there module for this in Perl?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,“perl 汉明距离”的 Google 结果发现了一个 perlmonks 线程,其中提到了 Text::LevenshteinXS,各种典型的实现,以及一个可爱的异或技巧:
您应该浏览关于 字符串指标(如果编辑距离或汉明距离不熟悉)。
First, google result for "perl hamming distance" found a perlmonks thread that mentions Text::LevenshteinXS, various typical implementations, and a cute xor trick :
You should skim wikipedia article on String metrics if Levenshtein distance or Hamming distance aren't familiar.