返回信息流在Visual Studio中,如果我们键入几个字母,它会列出以这些字母开头的所有类。Visual Assist大大强化了代码的提示功能。当你少输了中间几个字母的时候,VA也能列出相似的类。例如
我想用StringBuilder类,但是我输入了tribuil,在VA中就能够列出StringBuilder类。
这个功能能够大大提高敲代码的速度,而且也能帮助写代码的人回忆或者搜索一些他不熟悉的类。
但是我很好奇,它是怎么实现这个模糊匹配算法的,看上去挺复杂的。
求大牛赐教!
这是一条镜像帖。来源:北邮人论坛 / soft-design / #35717同步于 2009/9/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
请教一个字符串模糊匹配的问题——Visual Assist的增强型代码提
Keyman
2009/9/22镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
【 在 coolfantasy 的大作中提到: 】
: Edit Distance?
: Trie-tree?
编辑距离好像不适合吧,像我输入Sql
那么SqlConnectionStringBuilder和SingleQueryLock,VA中前缀匹配度比较高,也就是在这里,SqlConnectionStringBuilder匹配度高于SingleQueryLock
字典树google了一下也不是很懂,不知道和这个怎么结合
我觉得有几点:
1. 前缀匹配度最高
2. “tribuil”在查找时,buil的匹配位置应该在tri的匹配位置之后。也是说对于builderstring是匹配失败的
3. 连着的比分散的匹配度高。也就是对于tribuil来说,如果有个类或方法直接含有tribuil的话,那么匹配度高于含有“tri+若干字符+buil”的
我觉得这个算法仿照编辑距离可以这样描述:
一个字符串,经过若干次插入操作,最终变换成另外一个字符串。整个过程所经过的操作数。
这个插入操作,指的是在源字符串的任意位置上插入任意长度的字符串。
如果无法完成此操作,则操作数为正无穷。
不知道算法怎么实现