Toggle navigation
首页
博客
文章
美图
笔记
管理后台
内容简介
笔者:chen | 书名:正则指引(第2版)
🪶
笔记摘要
阅读字号:
小
中
大
-
+
16px
#### 内容简介 本书综合作者自己遇到的实际问题,以及其他开发人员咨询的问题,总结出一套巧妙运用正则表达式的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三部分:第一部分主要讲解正则表达式的基础知识,涵盖了正则表达式中常见的各种功能和结构;第二部分主要讲解关于正则表达式的更深入的知识,详细探讨了编码问题、匹配原理、解题思路;第三部分将之前介绍的各种知识落实到用语言.NET、Java、JavaScript、PHP、Python、Ruby、Objective-C、Golang 中,在详细介绍了在这些语言中正则表达式的具体用法之外,还辨析了版本之间的细微差异。本书既可以作为专门的学习用书,也可以作为备查的参考手册。 本书适合经常需要进行文本处理(比如日志分析或网络运维)的技术人员、熟悉常用开发语言的程序员,以及已经对正则表达式有一定了解的读者阅读。 <br> #### 正则表达式的“科班史” 为了传承经典教科书的良好习惯,附上正则表达式的“科班史”。 <div style="color: #6699CC; text-align: left; margin: 0px 0 0px 0px; max-width: 100%; font-family: '楷体', 'KaiTi', '华文楷体', 'STKaiti', serif; font-size: 18px; line-height: 1.2; font-weight: normal;">正则表达式发源于与计算机密切相关的两个领域:计算理论和形式语言。20世纪40年代,两位神经生理学家Warren McCulloch和Walter Pitts发明了一种用数学方式来描述神经网络的办法,他们把神经系统中的神经元描述成小而简单的自动控制单元。1956年,数学家StephenColeKleene在他们研究的基础上,发表了一篇名为《神经网事件的表示法》的论文,在其中,他采用了一些称之为“正则集合(regular set)的数学符号来描述神经网络模型。 之后,UNIX的主要发明人KenThompson将这个符号系统引入了文本编辑器QED(意思是"在文本中搜索某种模式"),正则表达式由此也进入了计算机世界。随后KenThompson又将正则表达式引入了UNIX下的文本编辑器ed,ed最终演化为大家熟悉的grep(grep得名自ed编辑器中的正则表达式搜索命令g/re/p,其中的re表示“正则表达式”,Regular Expression)。 </div> <br> #### 克制我们内心的冲动 《正则指引》(第2版)就要出版了,按说这是一条好消息。在这条好消息面前,我更想做的是克制自己内心的冲动,静下心来讲讲这本书初版以来的故事。 《正则指引》初级刚出版的时候,我一度认为,自己和正则表达式的缘分到此为止了。如果说翻译《精通正则表达式》之后还有许多遗憾,比如某些讲解方式不符合中国程序员的思维,以及过份关注英文,所以关于东亚文字处理的知识无从寻找,经验无从分享。那么写作《正则指引》,就是弥补这种缺憾的绝好机会。《正则指引》面世之后,这些缺憾已经悉数补上了。 令我没有想到的是,《正则指引》自2012年出版以来,不断有读者向我反馈问题。除去最早一两年密集热烈的反馈,后续的反馈如涓涓细流绵绵不绝。而我一度想当然地认为勘误已经完整了,所以一直没检查勘误邮箱。直到一年前读者在微信公众号后台给我留言,详细列明勘误意见之外,毫不留情地指责“对自己的作品不负责,长期不回复读者意见”。这封信让我惭愧不已。在软件开发中,“发布了就不管”是很不负责的,在技术书籍的写作中,“出版了两年就不回复读者意见”,同样是很不负责的。 所以,我必须克制自己内心“年代久远,不值得继续打理”的偷懒冲动。文责自负,完整的说法应该是“文责终身自负”。 本次《正则指引》(第2版)的出版,对我而言是全新的补过机会,可以“一次性”回复迄今为止所有的读者意见。当然,新增的 Objective-C、Golang等章节,尽管已经找熟悉的朋友审读过,但我可以肯定,它们必定不是完美无瑕的,未来仍然需要坦然面对广大读者持续的批评指正。哪怕有些批评指正的语气不那么让人舒服,甚至“看不到几分善意”,我仍然需要克制自己内心“反唇相讥”的冲动,认清事实,撇开情绪,虚心面对。 同时,我也希望读者在阅读这本书时,能克制自己内心的冲动。 我希望大家克制的第一重冲动,是浅尝辄止--“正则表达式这玩意儿,要用时翻翻就好,没必要深究”。正则表达式已经诞生很多年了,以今天的标准来看,它的语法和结构相当粗陋,不幸的是,它的内部逻辑又相当复杂。有些朋友会问我一些“怎么看也看不懂”的正则表达式,坦白地说,我也要反复琢磨才能看懂。所以,尽管这本书提供了若干“速查”资料,但我还是建议读者能耐下心来,至少通读一遍。正则表达式有点像游泳,学会了就不会忘,用的时候自然能想起来。否则,你永远只能在岸边扑腾,离开了其他人的协助,一步都不敢往深处去。虽然很多时候,与你要的东西就只有一步之遥。 我希望大家克制的第二重冲动,是玩弄正则表达式的快感。前面说过,正则表达式的语法和结构相当粗陋,内部逻辑又相当复杂,所以不少人学会之后,产生了“掌握神奇魔咒”的快感。凡是和字符串相关的处理必亮出神奇的正则表达式,能用一个正则表达式的绝不用两个,能用高级特性的绝不用简单特性.....随之而来的是其他人查错时层出不穷的抱怨,更不用提更新时胆战心惊的烦恼。要知道,熟练使用正则表达式,却不滥用正则表达式,同时考虑合作同事的感受和效率,才能真正赢得大家的尊敬。 武学大师说:武功不是用来伤害,而是用来制止伤害的。哲学大师说:没有审慎思考,不懂得克制的人生,是不值得过的。这些道理听起来有悖常理,我花了不少时间才终于弄懂。我相信,正在阅读这本书的你,也应当懂得这些道理 特别感谢两位女士,西乔和刘舫。西乔为这本书设计的封面,丝毫不受岁月的影响。刘舫编辑细致严谨的工作态度,支撑着我完成《正则指引》的第2版,再写下这篇序。 余晟 2018年9月3日 <div style="font-size: 0.90em;">笔者注:这是本书作者的一篇序言</div> <div style="font-size: 0.95em;"> <span>------------</span> 2026-05-04 17:10:56 星期一 </div>
返回内容列表
返回书名列表