正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。列目录时, dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的。正则表...
分类:
其他好文 时间:
2015-09-16 19:25:48
阅读次数:
173
KMP算法是字符串匹配处理中一种非常高效的算法,它的时间复杂度可以达到O(N+M),远优于普通匹配的O(NxM)。它最早是由Knuth,Morris,Pratt共同提出。算法原理普通的字符串匹配,假设从母串的A位置开始匹配,在某个位置B当母串和子串失配的时候匹配的起点会回溯到A+1处重新开始。而从A...
分类:
编程语言 时间:
2015-09-16 14:09:34
阅读次数:
239
时间总让我有后知后觉的挫感,而我,总是习惯于四处张望。 3.2.1 顺序查找 将数组中的元素和给定的查找键进行比较,直到成功匹配,或者遍历完整个数组,查找失败。可将查找键添加到数组末尾,这样就不必每次循环时都检查是否到达了表的末尾(然并卵,数组不方便在添加元素吧)。 代码实现: /** * 顺序查找...
分类:
其他好文 时间:
2015-09-16 08:36:00
阅读次数:
720
hash函数对大家来说不陌生吧 ?而这次我们就用hash函数来实现字符串匹配。首先我们会想一下二进制数。对于任意一个二进制数,我们将它化为10进制的数的方法如下(以二进制数1101101为例):hash用的也是一样的原理,为每一个前缀(也可以后缀,笔者习惯1 base,所以喜欢用前缀来计算,Hash...
分类:
编程语言 时间:
2015-09-14 15:22:55
阅读次数:
171
kmp的代码很短,但是不太容易理解,还是先说明一下这个算法过程吧。朴素的字符串匹配大家都懂,但是效率不高,原因在哪里?匹配过程没有充分利用已经匹配好的模版的信息,比如说,i是文本串当前字符的下标,j是要匹配的模版串当前正在匹配的字符的下标。(下标都从零开始)当匹配到i = 4, j = 4的时候失配...
分类:
编程语言 时间:
2015-09-09 17:04:29
阅读次数:
126
kmp的代码很短,但是不太容易理解,还是先说明一下这个算法过程吧。朴素的字符串匹配大家都懂,但是效率不高,原因在哪里?匹配过程没有充分利用已经匹配好的模版的信息,比如说,i是文本串当前字符的下标,j是要匹配的模版串当前正在匹配的字符的下标。(下标都从零开始)当匹配到i = 4, j = 4的时候失配...
分类:
编程语言 时间:
2015-09-09 16:24:13
阅读次数:
185
## css3新增选择器 ##一. 字符串匹配属性选择器E[att^="val"] ie6不兼容(^表示以这个值开头的元素)E[att$="val"] ie6不兼容($表示以这个值结尾的元素)E[att*="val"] 表示这个值包含的字符串E[att="val"] 表示属性直接等于这个值二. 结构...
分类:
Web程序 时间:
2015-09-07 00:35:16
阅读次数:
248
一、正则表达式是什么: 处理字符串时,经常需要处理复杂规则的字符串。正则表达式就是用于描述这些规则的工具。换句话说,就是记录文本规则的代码。二、正则表达式能做什么: 数据有效性验证(测试字符串匹配)如邮箱,电话号码等 替换文本 提取子字符串三、特点: 灵活性、逻辑性、功能性非常强 可以迅...
分类:
编程语言 时间:
2015-09-06 09:45:11
阅读次数:
269
#include<iostream>
using?namespace?std;
//匹配字符串。能匹配子串在原始字符串中所有出现的位置的开始下标,下标以0开始。
int?match(int?i,?int?n,?const?char?*ori,?const?char?*sub)
{
?int?...
分类:
编程语言 时间:
2015-09-05 22:25:00
阅读次数:
236
题意是给出一些子串,用这些子串能拼出一个S的前缀来,问这个前缀最长能有多长。做法是,从S的第一个元素开始扫,到S[i]时,查看每一个长度不大于i的子串,然后检查这个子串能否和以i为结尾,长度与这个子串长度相同的S的子串匹配,若能匹配,则检查在以S[i-子串长度] 为结尾处能否找到以前匹配到S[i-子...
分类:
其他好文 时间:
2015-09-04 17:00:46
阅读次数:
203