python有没有库或者函数实现从字符串A中找出所有和字符串B相似99%的子字符串?

gnolk 2018-04-06 08:12:26
正则表达式好像不可以吧?
...全文
691 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gnolk 2018-04-11
  • 打赏
  • 举报
回复
谢谢 非常感谢 我看看 呵呵
混沌鳄鱼 2018-04-10
  • 打赏
  • 举报
回复
混沌鳄鱼 2018-04-10
  • 打赏
  • 举报
回复
你这个相似度99%的定义很模糊。比如是视觉相似度,a0-aO,aC-AG 100个字符中有99个相同但排列不同,等等。 可以用difflib来比较两个字符串的差异,至于什么叫相似度99%要你自己来定义了。
混沌鳄鱼 2018-04-10
  • 打赏
  • 举报
回复
如果是你这个需求就很简单了

Python 3.6.2 (v3.6.2:5fd33b5, Jul  8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> a = 'abcde'
>>> b = 'abcdf'
>>> import difflib
>>> print(difflib.SequenceMatcher(None, a, b).quick_ratio())
0.8
>>> 

gnolk 2018-04-10
  • 打赏
  • 举报
回复
引用 5 楼 混沌鳄鱼的回复:
你这个相似度99%的定义很模糊。比如是视觉相似度,a0-aO,aC-AG 100个字符中有99个相同但排列不同,等等。 可以用difflib来比较两个字符串的差异,至于什么叫相似度99%要你自己来定义了。
位置和字符都一样 有99%的都满足 比如 abcde和abcdf 相似度是80%
gnolk 2018-04-09
  • 打赏
  • 举报
回复
谢谢了我先研究一下,不懂再问
  • 打赏
  • 举报
回复

from string import  ascii_letters
from random import  choice

letters=''.join([choice(ascii_letters)for i in range (99999)])#随机
def choose (sentence,ch):
    result=[]
    index=0
    index =sentence.find(ch,index+1)
    while index !=-1:
        result.append(index)
        index =sentence.find(ch,index+1)
    return result


c = choose(letters, 'a')
print(c)
这是我原来写的字符串查找程序,字符串是随机生成的都能找见,要是特定的字符串更简单了。 要是看不懂 关注我给我发消息,我免费给你解答。 希望帮到你
gnolk 2018-04-06
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry的回复:
用字符串相似度来判断。其实九十九计算字符串距离。
请说详细些 什么距离,谢谢
oyljerry 2018-04-06
  • 打赏
  • 举报
回复
用字符串相似度来判断。其实九十九计算字符串距离。

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧