其实这是两个根本不相关的话题,一个是几天在公司遇到的正则表达式的效率问题,一个是比尔盖茨在北大遭遇反垄断抗议,自己懒,就写到一起了。
1.正则表达式:
虽然,在公司用的是PHP,但是正则表达式在各门语言中都是相通的,大致都是一样的吧。
$str = "<td width=\"10%\" rowspan=\"2\" align=\"left\" valign=\"top\">www.cnhawk.org</td>";
要求把其中的网址取出来.
方法1:其中,用正则表达式“非贪婪模式”可以这样写$matchStr = "/<td (w+?)>(w+?)*</td>/i"(php语法);
preg_match_all($matchStr,$str,$array);
方法2:但是如果先用str_replace (' width=\"10%\" rowspan=\"2\" align=\"left\" valign=\"top\"','',$str),替换那些td属性,然后再用$matchStr2 = "/<td>(\w\.)</td>/i",preg_match_all($matchStr2,$str,$array);
数据量小的话,可能看不出有什么效率的提高,而我在公司是要取近一万行的数据,用第2种方法,速度提高了近10倍。可见,正则表达式“非贪婪模式”匹配速度慢,在有其他解决方案的情况下,尽量不要用“非贪婪模式”----虽然它看似简单了。
2.开源
“2007年4月20日,比尔盖茨在北大演讲,在他为一行人颁奖时,开源人士王洋冲上台并高举海报大声用英语叫喊反对微软垄断,事后他被警方带走进行调查。”
刚开始看到这则新闻,有点吃惊,但是了解细节以后,深深的为他的这种为开源而狂的精神所震撼。“知识产权”已经成为西方列强在未来压榨中国经济的一个重要大棒!”,唯一的出路就是推广“开源”。如此开源志士,令人敬佩!!!