看前两章,解决80%的日常需求,看第三章,解决90%_精通正则表达式书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 科技 > 精通正则表达式 > 看前两章,解决80%的日常需求,看第三章,解决90%
架构师 精通正则表达式 的书评 发表时间:2013-10-18 23:10:01

看前两章,解决80%的日常需求,看第三章,解决90%

Mastering Regular Expressions 3rd Edition.pdf CSDN版本,配合一个勘误表来看。一共有10章,建议看前五章,各个章节的收获如下:

看完1,2章: 解决80%的实际问题
看完第3章: 90%
看完第4章:97%
看完第5章: 99.9%

第6--10章不要看,原因很显而易见,因为99.9%的能够用正则表达式解决的问题都已经解决了。

第5章: 虽然只增加2.9%, 但是还是建议要看, 因为按照我的估算, 每100个正则表达式问题中就会有2.9个问题需要你在第5章里学到的技术。 遇到的概率还是比较大的。

第4章:作者吓唬你,说这章比较难,要看两遍,慢慢消化。 其实不难,如果前三章看得认真,第4章还没看你就已经懂了。建议看一遍即可。 如果需要巩固,第五章有足够的例子帮助你巩固。

第3章: 有一大段是Unicode的匹配,这一段建议一目十行跳读过去。因为我们处理的是中文,这本书没讲怎么匹配中文。

第1、2章:抱着相信自己,不迷信书本的原则,书上的例子是按照egrep的某个特定版本,后面是按照Perl的某个特定版本,书上的结果是这样, 你实际使用的那个工具不一定是这样。 每个例子都可以动手在Notepad++, UltraEdit之类的软件里试一试。

即使你看到某个例子在你实际工作中不可能遇到,也建议把原理看懂。很有可能哪天就会遇到类似的需求。我五月份看完前五章,六月底就冒出来一个需求, 愣是用到了第四章介绍的一些比较高级的技术。

IT技术书籍种类繁多,从事IT行业的人往往又工作繁忙,没什么时间读书,所以写一本书的书评,最重要的是说服读者,为什么一定要读这本书,为什么一定要学习这本书讲授的技术。一旦读者意识到,学习这门技术是必须的,那么这条路已经走了一半,书,已经读了一半了。

我从事的是网站开发,完全是处理文字信息,对于这种以文字处理为主的技术人员,如果只能读一本书,一定是这本:Mastering Regular Expressions 3rd Edition.pdf

为什么要学习正则表达式?
1. 实际工作中迫切的需求。
2. 很多工具支持。
3. 简单易学。 如我所说,读这本书的前五章就行, 而且一旦学过, 很难忘记。


详细的论述:

1. 实际工作中迫切的需求。

凡是经常上百度搜索信息的人, 自己都能想出正则表达式的概念来,就是用一些符号表示能匹配什么样的文字,达到只搜索一次,就能搜索出满足条件的各种文本。这是一个最基本的需求。

就是这样一个最迫切的需求,却并没有得到重视。 我在软件学院四年,只听说过一次正则表达式, 是在自己的课外时间,在CSDN看到的。学校根本不教。Java的培训机构很多,PHP的培训机构很多,从来没听说过哪个培训机构是培训正则表达式的。到购书中心逛一圈,Java的书有五十多本,PHP的书有二十多本,正则表达式的书只有这一本。这样,得出的结论是:正则表达式应该没什么用处。这是不聪明的人得出的结论。 我们是聪明人,我们知道有些很有用的技术,学校里确实是不教的。 有一个很恰当的例子是广东话: 如果你学电影专业,音乐专业, 很有可能大学四年都学不到一句广东话。 然而所有的影帝,所有的歌神,周润发,梁朝伟,张国荣,陈奕迅,都是演广东话的电影,唱广东话的歌。 对我来说,不会讲广东话, 等于不会唱歌。不会讲广东话的人,永远做不了影帝, 这在历史上已经被一次又一次地证明过了。

正则表达式是IT领域的广东话。 它不像Java, PHP那样是一门正统的开发语言, 但它仍然是那么地有用, 可以说,不会正则表达式, 等于不会编程。

2. 很多工具支持。

学习一门陌生的语言,最大的障碍,莫过于与现有的知识结构冲突。 正则表达式中各个符号的意思,跟别的语言不同,例如点号(.)表示“任意一个单个的字符”。 为什么用点号? SQL里面明明是用下划线表示的,凭什么我要学习一门新的语言,用另外一套符号来表示这些东西?

因为正则表达式获得的支持,远比SQL,Javascript,HTML等这些语言广泛得多。 SQL只是用来查询数据库的。 HTML只有网页才用到。 它们都是特定的应用。 包括Java, PHP, 也只是特定的应用, 一个网站如果不是用Java开发的, 那Java里的什么符号表示什么意思对他来说毫无意义。 正则表达式比这些技术都更具有普遍的价值,凡是涉及到文字处理的领域,大多数都可以使用(也有例外,Word里面不能用),尤其是程序员的日常开发,完全是和文本打交道的,所有的代码都是文本,写代码本身就是文字处理,所以与正则表达式是密不可分的。

广东话也是这样。广东话拥有的群众基础, 远比其他地方的话要广泛得多。因为香港的电影和粤语歌曲,具有最大的影响力,到任何一所中学去问,一定知道Beyond的歌,没有哪种语言的歌曲具有粤语歌这么大的影响力。

但是要注意,很多文字处理方面的问题,正则表达式也只能傻眼,完全搞不定。如果你的日常工作是在Windows里面搜索某个文件名,用Word处理文档,或是用Google搜索信息,你马上就傻眼了,人家不支持正则表达式。 广东话也是这样,虽然粤语歌曲的影响力巨大,如果你去参加中国好声音,或者去台湾拍个电影,你也会傻眼的,广东话完全派不上用场啊。


3. 简单易学,很难忘记。

正则表达式没有什么新的语法,无非是从左到右,一个一个进行比较而已。同样的,广东话也不是一门单独的语言,语法和普通话是一样的。广东话和普通话的最大区别,是字的发音,而用词、造句都差不多的,只要每个字会读了,从左到右一个个读就行了。

学习一门语言,最重要的是平常使用。天天使用的东西,还会忘吗。在日常的编码工作中,Notepad++和Eclipse中都会经常用到正则表达式搜索字符串,我一天使用的次数大概有15次,每个星期都会用到一些比较高级的语法,如look ahead。只有这样才能做到易学、难忘。

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“看前两章,解决80%的日常需求,看第三章,解决90%”的回应

大槐树 2016-03-20 17:45:01

虽然不懂你说的对错,但是这个比喻风格蛮喜欢的。哈哈

小水 2014-11-23 02:12:26

节约时间啊,

Pegasus 2014-01-05 22:20:50

感谢楼主,刚买了这本书,精力有限,就看前五章了

黄鼠狼打羽毛球 2013-10-23 23:50:56

我记得第一次用正则表达式,是当时有一个含有40几万行sql代码的文件,通配符替换太弱了,完全不能满足需求,于是尝试边学边用正则,花了一个多小时写出了一个正则,一点"全部替换",卡了1分多钟就完成了,当时之震撼.

黄鼠狼打羽毛球 2013-10-23 23:44:08

看完环视那部分,第二天我就用在需求上了