你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

sublime text Sublime Text模糊匹配怎么用在搜索?实用功能介绍与代码分享

发布时间:2026-01-16

浏览次数:0

模糊匹配功能确实相当出色,棒到令人赞叹,我着实极为喜爱此功能。然而,诸多其它类别文本编辑器、IDE工具以及网站搜索栏却均无此功能。该功能这般强大且实用,我觉得所有搜索功能都理应引入模糊匹配机制 。

然而,我冀望凭借自身努力去扭转此现状。其一,我得针对模糊匹配功能施以深度剖析与钻研,进而探寻其中之奥秘。其二,我还会向众人供给该功能的源代码,其他现存项目能够径直运用这些源代码以提升程序的搜索性能 。

事实而言,我于脑海之内构思出了几个该功能的特别运用情形了。我期望在编程进程当中也可以运用此功能,涵盖搜索文件名,类名,还有函数名等等。然而,我所要达成的必定远不止如此这般。

我身为一名对炉石极度热衷的玩家,于游戏进程里寻觅卡片是极为平常的任务,好多玩家也会于网上搜寻此类内容,类似的网站能够给众多玩家予以一定程度的助力,除此以外,我还是卡片数据库的痴迷粉丝,像.cards等网站 。

多数和炉石相关的网站,仅会给用户开展基本的子字符串匹配搜索。然而,要是卡片名称是“ the ”,那么此卡片名称里含有子字符串“rag”吗?显然,卡片名称确实含有这个子字符串。然而要是卡片名称是“Inner Rage”,是“ ”,是“Magma Rager”,又或者是其他像这般形式的字符串呢,其中是不是还含有子字符串“rag”呢,这是值得思索一番的,不过很显然,要是我们输入“rtf”或者“ragrs”去开展搜索的话sublime text,速度会更快些,搜索结果也会更为精准。

仅就我个人的想法而言,于开展模糊匹配的进程当中,搜索的速度必须确保能够快速,并且呢,在针对成千上万条记录予以搜索的进程里面,还得具备一定的交互功能。

功能讲解

若众人针对Text编辑器展开深度剖析之后,有两处必定会变得极为显著。

1. 在Text开展模糊匹配的进程当中,会试着于搜索结果里跟每一个字符去进行匹配。

它的模糊匹配算法种类当中存在基于具体算法决定哪一个搜索结果更具重要性进而按评分顺序进行显示输出的隐藏评分机制。 , , 。

对于第一个功能,我们能够借助代码直接达成sublime text,其过程着实相当轻易,具体代码呈现于如下图示:

大家能够从上面那张图里瞧见达成该功能的具体达成代码,并且我还在我的代码库之中增添了该功能的C++版本以及版本。我这般去做是有着我自己的缘故之所在的,鉴于这段代码能够替换掉好多简单的子字符串匹配功能 。

评分系统

莫过于这个隐藏的评分机制是最有趣的地方了。系统会利用什么样的因素去评分搜索结果呢?系统又是依据什么来决定搜索结果的排序呢?首先,我对下面这几个影响因素做了分析:

-匹配的字符

-不匹配的字符

-连续匹配的字符

-起始字符的位置

-字符后面是否跟有分隔符(如空格和下划线)

-大写字母后面是否跟有小写字母(即驼峰命名法)

对于这部分内容而言,其实极易被理解,依据所匹配的字符,进而针对搜索结果予以排序,随后将不匹配的字符排除掉 。

然而,关键的问题是,系统怎样去评判,哪一个搜索结果应当排列在前面。我认为,就这一点来讲,不存在唯一的正确答案。数据权重应当依据数据集的具体情形来决定。并且,文件路径跟文件名不一样,文件的后缀名常常会被忽视掉。对于单词来说,系统通常关注的是,连续的字符是否匹配,而不会考量分隔符和驼峰命名法这两个因素。

要是众人期望知晓它于针对各异数据集开展搜索排序之际所运用的技术详情,我极为强烈地建议众人去阅读源代码。

-初始评分为0

-检测到匹配字符:+0分

-检测到不匹配的字符:-1分

-检测到连续匹配的字符:+5分

-检测到分隔符:+10分

-检测到驼峰命名法:+10分

-检测到首字母不匹配:-3分(最多减9分)

总结

我极其喜爱Text以及它这般的模糊匹配算法,当下我也正全力以赴去尝试研发出一款与之相似的软件,并且达成类似的功能,我感觉自己即刻就要大功告成了!

其次,我会把我所开发出来的源代码提交进去,我期望所有人都能够从其中获取益处。我不清楚我的项目里是否存在漏洞或者设计方面的缺陷,所以对此有兴趣的朋友可以在我的上面留言。

互动演示:请点击这里获取

源代码:C++;

感谢大家的阅读!

比特币赞助打赏地址:

请你提供具体的句子内容,以便我按照要求进行改写。

要闻、干货、原创、专业

如有侵权请联系删除!

13262879759

微信二维码