小议正则表达式效率:贪婪、非贪婪与回溯

前几天看了鸟哥的BLOG上写的关于正则表达式的回溯与递归的限制时,对贪婪、非贪婪产生的回溯有疑问,遂近段时间,仔细的学习研究了一下,现在把经验心得与大家分享一下。
先扫盲一下什么是正则表达式的贪婪,什么是非贪婪?或者说什么是匹配优先量词,什么是忽略优先量词?
好吧,我也不知道概念是什么,来举个例子吧。

Continue reading


coolcode转SyntaxHighlighter与Mysql正则表达式


blog的代码高亮插件原来是coolcode的,coolcode的高亮插件确实很酷,显示效果也很棒,但是占用的位子太大了。最近,我抽空改成SyntaxHighlighter。由于coolcode插件的开头标签是或者[coolcode]这样的,而SyntaxHighlighter是[code]这样的(或者其他)。遂只能想办法把老的格式转化成新的格式。当然,肯定用到正则表达式了。

Continue reading


CFC4N小试正则表达式

朋友甲:要求根据一串字符串,反转成PHP数组,其给出的字符串为php的print_r打印出来的。我们在暂不考虑此方法是否能确保数据的准确性,以及其他意外等情况,仅根据要求写正则。
朋友乙:要求批量给html字符串中a标签中不包含title属性的标签添加title,而且,其title内容为<a href…>到</a>之间的文本。。
朋友丙:要求过滤非本域名,或者非本子域名的其他域名的UBB标签链接,一旦包含,直接替换成其中间的文本
朋友丁:要求读取squid的配置文件中,起作用的行,也就是没有#开头进行注释的行

Continue reading


Discuz7.2的暴露网站所在路径的BUG

Discuz7.2处理图片报错,信息为:Warning: sprintf() [function.sprintf]: Too few arguments in ….\include\discuzcode.func.php on line 369,原因分析:
当用户在发帖的时候,选择使用远程图片地址,且指定了图片的宽,高,且URL中包含%百分号(比如汉字URL编码)的时候,被discuzcode.func.php程序中的discuzcode函数处理。在discuzcode函数处理图片的URL的正则替换部分,用parseimg函数进行处理,parseimg函数的三个参数全部是正则匹配的结果,三个参数依次是宽,高,URL地址。paeseimg函数又调用了bbcodeurl函数处理,并把匹配的URL当作bbcodeurl函数的第二个参数的一部分,交给bbcodeurl函数处理。的sprintf 函数的第一个参数来自用户输入的数据,程序在使用bbcodeurl函数的时候,没有检测用户输入的数据,直接把用户输入的数据作为自己参数的一部分,也就是$tags参数了。bbcodeurl函数用了sprintf函数进行字符串格式化。$tags又是第一个参数,其中,$tags字符串中的%号是格式化字符串的保留字符,以为着有几个单独的%号,就必须后接几个参数。由于程序没有判断$tags中包含几个单独的百分号,后面的参数也是固定的两个,如果URL中包含百分号的话,则导致参数的个数不对,报Warning错,就暴露了程序所在服务器的路径了(config.inc.php中的$errorreport变量限制了错误报告的对象,默认只允许报告给版主,管理人员)。

Continue reading


Visual Studio 2010 全部五部广告视频。让爱延长、幸福也需要敏捷、当爱有了debug、让爱编译通过

继《Visual Studio仿优乐美广告》之后第二弹《让爱延长》煽情广告又放出啦。其男女主角都没变。女主角依然那么PL,广大程序员宅男们,接着内牛满面啊。。。。
第三弹 《幸福也需要敏捷》,第四弹,《当爱有了debug》,第五弹,《让爱编译通过》,其中第五弹台词:妈妈说:你什么都好,就不该是个程序员…… 很杯具的台词

Continue reading


震撼人心的新科技 – Sixth Sense

如果说,Windows系统的图形化界面把人们从Dos系统下解放出来,用更符合直觉和人性的方法让人们对电脑进行操作是一次新技术的跨越的话,那么视频里这套Prarnav Mistry提供的第六感(Sixth Sense)装置,则是另外一次意义更为深远的腾跃。和它相比,目前甚嚣尘上的所谓“物流网”,只是这个新技术的小小注脚,无论在深度还是广度上,都无法与之比拟。 网络和电脑技术,终于使得数字世界和现实世界全面融合,人类升级为真正意义上的数位人!新时代就要开始了!

Continue reading