为什么需要正则表达式 by 王垠 学习Unix最开头,大家都学过正则表达式(regexp).可是有没有人考虑过我们为什么需要正则表达式? 正则表达式本来的初衷是用来从无结构的字符串中提取信息,殊不知这正好是Unix的缺陷所在.Unix用无结构的字符串来表示数据,导致了诸多复杂的基于regexp的软件的诞生.sed, AWK, Perl, … 都是为了同样的目的来到这个世界上的.如果不是因为Unix用字符串来表示数据,我们就会拥有按数据结构类型的直接存储,而不需要折腾regexp.正则表达式有它自…
完全用GNU/Linux工作 王珢      (看完这篇博文,非常喜欢王珢的这篇博客,也我坚定了学gnu/linux的决心,并努力去按照国外的计算机思维模式去学习编程提高自己.看完这篇文章令我热血沸腾,难以入睡.也希望看到这篇博文的朋友有所收获.) "UNIX 是简单的,你不需要成为天才也能理解这种简单" 由于GNU/Linux这个词太长,下面如果没有特别指明,“Linux”就是指“GNU/Linux”. 在这个年代,恐怕没有人需要我来介绍 Linux 是什么了吧?如果你觉得“Linu…
什么是“黑客” by 王垠很多程序员自豪的把自己叫做“黑客”(hacker),把编程叫做 hack.可是殊不知,其实在最高级的程序员眼里,“黑客”其实是一个贬义词.他们更愿意被叫做“程序员”(programmer),或者计算机科学家(computer scientist).当然,你有可能以一个 hack 从“世界一流大学”拿到一个 PhD.但是 PhD 其实不说明任何问题,世界上有太多的人拥有 PhD,其中绝大部分都是 hack.hack 的本质是不会变的——它是低级的工作. hack 的意思本…
对博士学位说永别 by 王垠 经过深思熟虑之后,我决定再次“抛弃”我的博士学位.这是我第三次决定离开博士学位,也应该是最后一次了.这应该不是什么惊人的消息,因为我虽然读博士10年了,可是我的目标从来就不是博士学位.我在寻找更重要的东西,而且那个东西已经被我找到了.所以我的“博士生涯”其实完成了它的使命,基本上可以圆满结束了. 如果你从我之前的博文判定我现在生活在我所向往的环境中,那么你就误会了.虽然我学到了我想要的东西,但是却发现学术界不再是我向往的地方.相反,它阻碍了我的前进,让我很不开心.很…
名称和本质 by 王垠 我很喜欢 Richard Feynman 写的 <What Do You Care What Other People Think>.在最开头 Feynman 讲到他小时后的故事.他的父亲经常带他到外面散步,给他讲很多有趣的故事.他受到启发,后来成为了一名科学家.有一次,他们走到一个地方看见一只鸟.父亲说…… “See that bird? It’s a Spencer’s warbler. (I knew he didn’t know the real name.)…
小小科学家的归来 by 王垠很多人来信关心我的现状,所以在写别的技术性文章之前,先说说我现在的情况吧.虽然自己追求的东西和经历都比较不同寻常,但是也许可以给奋斗中的人们一些慰藉和鼓励. 首先是超级好消息.几经周折,我得到了我想要的东西:异常强大而独立的思想.我成为了我想成为的人:曾经那个爱玩蚂蚁的“小小科学家”.他的灵魂回到了我身上.现在的我,每一天都充满了激情.脑子里总是有一些没法描述的,神奇的思想在萌发.它们让我感觉到无与伦比的美,让我的脸上浮现出笑容.它们让我从睡梦中蹦起,去试验.它们让我…
我看PhD by 王垠 前段时间看了一下这些关于 PhD 的负面信息: 一个专门反对读 PhD 的 BLOG 叫“100 Reasons NOT to Go to Graduate School”(下文简称“100个理由”) 哈佛大学教授 William James 的“The PhD Octopus”(写于 1903 年) 斯坦福大学的计算机系博士 Philip Guo 写的书“The Ph.D. Grind”(描述他的 PhD 生涯) 专门讽刺 PhD 生活的系列漫画“PhD Comics”…
Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列匹配某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些匹配某个模式的文本. 许多程序设计语言都支持利…
正则表达式语法 正则表达式 (或 RE) 指定一组字符串匹配它;在此模块中的功能让您检查一下,如果一个特定的字符串匹配给定的正则表达式 (或给定的正则表达式匹配特定的字符串,可归结为同一件事). 正则表达式可以连接到形式新的正则表达式; 如果A 和 B 两个都是正则表达式, 那么 AB i也是正则表达式. 本模块提供了类似于那些在 Perl 中找到的正则表达式匹配操作. 两个模式和字符串被搜索可以是Unicode字符串以及8位串.然而,Unicode字符串和8位串不能混用:也就是说,你不能匹配一…
执行数据库查询时,有完整查询和模糊查询之分.一般模糊语句如下:SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式:1.%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请运用两个百分号(%%)表示.比如 SELECT * FROM [user] WHERE u_name LIKE '%三%'将会把u_name为"张三","张猫三"."三脚猫","唐三藏&…