« 包含标签 正则 的文章
Superor 老师的正则表达式视频教程
浏览CU时发现Superor老师的《 探索Perl的世界(更新到40 集)-Perl 教学视频 》(国人,中文),其中有5集是讲正则表达式的。观看之后觉得不错,贴在这里。 之前贴过余晟老师的正则表达式视频,由于各种不可抗力,所上传到各大空间的,也都渐渐不再能访问。我最早是从老友牛腩粉那里得到的,地址 在此 ,可以留 言,碰碰运气。 Superor老师的视频,其实不限于正则表达式,而是系统地讲解 Perl 的教程。我是断章取义,将正则表达式部分摘过来了。Superor老师也说过了,他在学习Perl时,准备了不少书,但是不是系统地看完,而是用到哪一部 分,就细读这一部分的全部内容。学正则表达式也可如此。 视频是在线的,效果不错,虽然会插播广告。 第20集:第八章 正则表达式 http://www.boobooke.com/v/bbk3748 第21集:第八章 正则表达式 http://www.boobooke.com/v/bbk3749 第22集:第八章 正则表达式 http://www.boobooke.com/v/bbk3750 第23集:第八章 正则表达式 http://www.bo…
深悉正则(pcre)最大回溯/递归限制
对于如下的正则: /script.*?\/script/is 当要匹配的字符串长度 大于 100014的时候, 就 不会 得出正确结果: $reg = "/script.*?\/script/is";$str = "script********/script"; //长度大于100014$ret = preg_repalce($reg, "", $str); //返回NULL 难道正则对匹配的串有长度限制? 不是, 当然不是, 原因是这样的, 在PHP的pcre扩展中, 提供了俩个设置项. 1. pcre.backtrack_limit //最大回溯数2. pcre.recursion_limit //最大嵌套数 默认的backtarck_limit是100000(10万). 这个问题, 就和设置项backtrack_limit有关系. 现在要弄清这个问题的原因, 关键就是什么是”回溯”. 这个正则, 使用非贪婪模式, 非贪婪模式匹配原理简单来说是, 在可配也可不配的情况下, 优先不匹配. 记录备选状态, 并将匹配控制交给正则表达式的下一个匹配字符, 当之后的匹配失败的时候, 再溯, …
PHP中的递归正则
之前一篇文章翻译了 Perl语言中的递归正则表达式 . 其实不少语言中的正则都是支持递归的, 例如本文要介绍的PHP正则递归. 虽然, 工作中最常用的正则表达式都很”正则”, 只用最基本的语法就能解决85%以上的问题, 而且合理有效地使用普通正则来解决复杂问题也是一门技巧与学问; 但是高级一点的语法的确有它存的价值, 有时不用它还真办不了事儿; 况且学习正则的乐趣也在于 尝试各种各样的可能性, 满足自己无穷无尽的好奇心 . 本文 内容, 整理自网文 Finer points of PHP regular expressions . 其分析过程剥茧抽丝, 丝丝入扣, 值得一读. 该文系统地列出了PHP中正则表达式常见特性, 我只摘取其中递归部分翻译整理出来. 正文 例子 什么时候会用到递归正则表达式呢? 当然是待匹配的字串中递归地出现某种模式时(貌似废话). 最经典的例子, 就是递归正则处理嵌套括号的问题了. 例子如下. 假设你的文本中包含了正确配对的嵌套括号. 括号的深度可以是无限层. 你想捕获这样的括号组. 恕我剧透, 标准答案是这样的: 1 2 3 4 5 6 7 ?php $st…
传播、沟通、分享