设计一个支持‘.' 和 '*' 的正则表达式匹配算法。
这个题复杂的地方在于对于 '*' 的处理,这个符号在正则表达式中被称为贪婪型的量词。这个量词在实际匹配过程中也是尽可能多的匹配直到词尾或者不匹配成功才结束,然后如果其后面还有没有匹配的,则回退到合适的位置,然后才进行下一个匹配。正则表达式中的匹配优先与回溯大概也就是这个意思。关于正则表达式这方面的知识,有兴趣可以读读《精通正则表达式》的第4章表达式的匹配原理。
回到本题,正因为 '*'的特殊性,我们在分类的时候选择根据 '*' 来进行,分类后其子问题也...
分类:
其他好文 时间:
2014-06-20 09:40:42
阅读次数:
207
关于“\b”正则表达式中的“\b”是匹配除 数字、字母、汉字、下划线以外的所有字符。例如:
string tel = "hi Lucy"; Regex rx = new Regex(@"\bhi\b.*\bLucy\b"); bool ...
分类:
其他好文 时间:
2014-06-12 00:43:42
阅读次数:
295
注:元字符中的字母不缺分大小写。元字符说明^匹配字符串的开始。$匹配字符串的结束。.匹配除换行符以外的任意字符。\d匹配数字。\b匹配单词的开始或结束。\s匹配任意的空白字符。\w匹配字母、数字、下划线或汉字。注:"^"
如果设置RegexOptions.Multiline属性时,也可以匹配“\r”...
分类:
其他好文 时间:
2014-06-11 22:36:13
阅读次数:
245
赶集要发:http://www.ganji18.com你使用路由约束来使浏览器请求限制在匹配特定路由的中。你可以使用一个正则表达式来具体化一个路由约束。例如,设想你已在Global.asax文件中定义了清单1中的路由。清单1——Global.asax.csroutes.MapRoute(
"Prod...
分类:
Web程序 时间:
2014-06-11 22:29:20
阅读次数:
269
my %h=%{foo()} #接收hashsub foo{ my %fh; $fh{a}=1;
return \%fh;
#返回hash引用}grep??在hash中,当检验一个元素值是否被定义是用defined,当检验一个key在hash中是否存在时,用exists。
分类:
其他好文 时间:
2014-06-11 09:40:45
阅读次数:
440
原文:【javascript杂谈】你所不知道的replace函数前言最近在做面试题的时候总会用到这个函数,这个函数总是和正则表达式联系到一起,并且效果很是不错,总能很简单出色的完成字符串的实际问题,大家肯定都会使用这个函数,像我一样的初学者可能对这个函数的了解还是不够深的,今天就总结一下,了解一下,...
分类:
编程语言 时间:
2014-06-11 08:12:08
阅读次数:
377
1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$4
m-n位的数字:^\d{m,n}$5 零和非零开头的数字:^(0|[1-9][0-9]*)$6
非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7 带1-2位小...
分类:
其他好文 时间:
2014-06-11 07:16:25
阅读次数:
217
原文:再议 js 数字格式之正则表达式前面我们提到到了js的数字格式《浅谈 js
数字格式类型》,之前的《js
正则练习之语法高亮》里也提到了优化数字匹配的正则。不过最近落叶给了我一个正则,让我豁然开朗,比我写的犀利多了,所以今天拿出来简单说一下(只说十进制部分的匹配)。先看下我之前写的正则:/\d...
分类:
Web程序 时间:
2014-06-09 23:49:51
阅读次数:
491
一、用户名和密码长度的限制:
\S{5,7}:表示长度为6~8的限制,且不能有空白。
二、用户名的限制:
^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){5,7}$:表示用户名必须以字母开头,只能包含数字、字母和下划线,且长度为6~8....
分类:
其他好文 时间:
2014-06-07 15:45:42
阅读次数:
172