随笔分类 -  模式匹配

Python/Shell 正则表达式与运用
摘要:正则表达式用的地方是很多的。比如字符串处理过程中。最近遇到记录一下。 1. 比如在shell中 执行输出: 2. Python中 输出: 例子中的正则表达式多次使用到了捕获组,主要是方便查找与输出。() 每个括号是一个捕获组。 更多关于捕获组的用法可以参考网上其他博客, 如: http://blog 阅读全文

posted @ 2017-11-28 08:52 旭东的博客 阅读(779) 评论(0) 推荐(0) 编辑

json schema校验
摘要:工作中使用到了json schema格式校验的问题,在网上查了些资料,结合自己的理解记录一下。 json schema可以对json结果字符串做出一些约束,例如: 1. 值类型是:array, object, number, string等等 2.值类型必须是枚举中的一个 3. 字符串的长度限制 4 阅读全文

posted @ 2017-08-15 08:14 旭东的博客 阅读(9756) 评论(0) 推荐(1) 编辑

使用递归哈希进行精确模式串匹配
摘要:字符串处理是每个编程者都必须掌握的知识,主要看看字符串的搜索查找功能。现在的编程语言如C/C++/Java等都提供了对字符串子串的查找功能,具体如下:(1)C:strchr,strstr。(2)C++:find,rfind,find_first_of,find_first_not_of等等。(3)Java:indexOf,lastIndexOf等。下面说明一种使用递归哈希进行字符串搜索/查找的方法:(1)递归哈希 维护一个窗口,大小为n。如下公式即为起始位置为x,长度为n的窗口的哈希数值。 递归哈希主要体现在哈希数值的更新操作,减少重复的计算。下面是递归哈希的更新公式。 因为窗口[x,x... 阅读全文

posted @ 2013-12-24 09:07 旭东的博客 阅读(2289) 评论(2) 推荐(0) 编辑

Horspool 字符串匹配算法
摘要:Horspool 字符串匹配算法对Boyer-Moore算法的简化算法。Horspool 算法是一种基于后缀匹配的方法,是一种“跳跃式”匹配算法,具有sub-linear亚线性时间复杂度。Horspool 算法: 对于每个搜索窗口,该算法将窗口内的最后一个字符和模式串中的最后一个字符进行比较。如果相等,则需要进行一个校验过程。该校验过程在搜索窗口中从后向前对文本和模式串进行比较,直到完全相等或者在某个字符处不匹配。无论匹配与否,都将根据字符d在模式串中的下一个出现位置将窗口向右移动。 可以使用下图进行理解: (1)窗口大小与模式串大小相同,窗口内容为文本内容的一部分。 (2)对于窗口而... 阅读全文

posted @ 2013-11-22 16:59 旭东的博客 阅读(8092) 评论(0) 推荐(0) 编辑

Aho-Corasick 多模式匹配算法、AC自动机详解
摘要:Aho-Corasick算法是多模式匹配中的经典算法,目前在实际应用中较多。Aho-Corasick算法对应的数据结构是Aho-Corasick自动机,简称AC自动机。搞编程的一般都应该知道自动机FA吧,具体细分为:确定性有限状态自动机(DFA)和非确定性有限状态自动机NFA。普通的自动机不能进行多模式匹配,AC自动机增加了失败转移,转移到已经输入成功的文本的后缀,来实现。1.多模式匹配 多模式匹配就是有多个模式串P1,P2,P3...,Pm,求出所有这些模式串在连续文本T1....n中的所有可能出现的位置。 例如:求出模式集合{"nihao","hao" 阅读全文

posted @ 2013-11-20 14:25 旭东的博客 阅读(42390) 评论(3) 推荐(5) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示