写一个正则表达式的三个步骤:理解需求并找出你需要验证的数据的特征;写一个还可以用的正则表达式;看看能不能达到你的目的,同时想想会不会匹配到一些不想要的数据;[可选]性能优化我觉得写一个正则表达式可以简单的分为这么几个步骤。好了,现在要验证一个电子邮件的地址的合法性。首先,一般我们会在一些注册的时候验...
分类:
其他好文 时间:
2014-07-21 00:23:44
阅读次数:
348
任何复杂的正则表达式都是由简单的子表达式组成的,要想写出复杂的正则来,一方面需要有化繁为简的功底,另外一方面,我们需要从正则引擎的角度去思考问题。关于正则引擎的原理,推荐《Mastering Regular Expression》中文名叫《精通正则表达式》。挺不错的一本书。 OK,先确定我们要解决的...
分类:
Web程序 时间:
2014-07-16 21:08:34
阅读次数:
235
这个例子出自《精通正则表达式》,做一下笔记帮助理解和记忆。第一版最简单的case就是考虑包含一对引号,那么写出来的表达式应该是这样的:".*"但是这个未免太简单了吧,会有啥问题呢?假如输入的字符串长这样结果就会出问题拉。see...Input String: "Hello" and "World" ...
分类:
其他好文 时间:
2014-07-11 09:16:39
阅读次数:
174
标准库:一些最爱
re
re模块包含对正则表达式的支持,因为曾经系统学习过正则表达式,所以基础内容略过,直接看python对于正则表达式的支持。
正则表达式的学习,见《Mastering Regular Expressions》(精通正则表达式)
re模块的内容
最重要的一些函数
函数
描述
compile(pattern[,fl...
分类:
编程语言 时间:
2014-06-25 08:28:05
阅读次数:
304
设计一个支持‘.' 和 '*' 的正则表达式匹配算法。
这个题复杂的地方在于对于 '*' 的处理,这个符号在正则表达式中被称为贪婪型的量词。这个量词在实际匹配过程中也是尽可能多的匹配直到词尾或者不匹配成功才结束,然后如果其后面还有没有匹配的,则回退到合适的位置,然后才进行下一个匹配。正则表达式中的匹配优先与回溯大概也就是这个意思。关于正则表达式这方面的知识,有兴趣可以读读《精通正则表达式》的第4章表达式的匹配原理。
回到本题,正因为 '*'的特殊性,我们在分类的时候选择根据 '*' 来进行,分类后其子问题也...
分类:
其他好文 时间:
2014-06-20 09:40:42
阅读次数:
207
原文:js 正则学习小记之NFA引擎之前一直认为自己正则还不错,在看 次碳酸钴,Barret
Lee
等大神都把正则玩的出神入化后发现我只是个战五渣。求抱大腿,求大神调教、之前大致有个印象,正则有很多种引擎,但我根本不知道有哪些引擎。今天在读《精通正则表达式》才发现有Traditional
NFA,...
分类:
Web程序 时间:
2014-05-12 07:59:20
阅读次数:
312
之前一直认为自己正则还不错,在看 次碳酸钴,Barret Lee
等大神都把正则玩的出神入化后发现我只是个战五渣。求抱大腿,求大神调教、之前大致有个印象,正则有很多种引擎,但我根本不知道有哪些引擎。今天在读《精通正则表达式》才发现有Traditional
NFA,POSIX NFA 和 DFA (具...
分类:
Web程序 时间:
2014-05-06 12:52:31
阅读次数:
372