定义:设有主串S和子串t,子串的定位就是要在主串S中找到一个与子串t相等的子串。通常把主串S称作目标串,子串t称作模式串,因此定位也称作模式匹配。
常用两种算法:
1brute-force算法
思路:主串标记指针每次移动一个位置,然后和子串比较,如何相等则返回当前主串指针的位置。
模式匹配过程如图:
图略
上面算法的缺点:主串指针回溯,当与模式串部分匹配后,每次主...
分类:
其他好文 时间:
2014-09-11 12:33:21
阅读次数:
120
再次回来总结KMP,发现有点力不从心,学久了,越觉得越来越不理解了。估计是写KMP已经不下50遍了吧。每次用都是直接默写。。KMP算法,串模式匹配算法,通过预处理得到next数组,再进行匹配。几个要重点记忆的地方:1. next数组的含义 next[i] = t 表示以i位置结尾的前缀串(相对于原串...
分类:
其他好文 时间:
2014-08-19 00:56:23
阅读次数:
213
我们在使用查询的时候,经常会碰到模糊条件查询,而模糊查询就涉及到了字符串模式匹配。
在这里,主要讲两个:标准的SQL模式匹配、扩展正则表达式模式匹配。
一、标准的SQL模式匹配
SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在MySQL中,SQL的模式缺省是忽略大小写的。下面显示一些例子。注意在你
使用SQL模式时,你不...
分类:
数据库 时间:
2014-06-20 09:49:47
阅读次数:
244
基本概念
串(字符串)
由0个或多个字符组成的有限序列,例如s="hello world"
串名
上例中的s
子串
某串任意连续字符组成的子序列,称为此字符串的子串
空串
0个字符的串,s=""
空格串
由一个或多个字符组成的串
模式匹配算法
...
分类:
其他好文 时间:
2014-06-02 23:28:56
阅读次数:
305
7.5 字符串模式匹配
re模块为高级字符串成处理提供了正则表达式匹配。 对于复杂的匹配和处理,正则表达式能够提供简明优化的方法:
>>> import re
>>> re.findall(r’\bf[a-z]*’, ’which foot or hand fell fastest’)
[’foot’, ’fell’, ’fastest’]
>>> re.sub(r’(\b[a-z]+)...
分类:
编程语言 时间:
2014-05-14 01:04:22
阅读次数:
490