要学习一门技术,我认为首先要了解其历史和来源,而不是一开始就来使用它,学习正则表达式也是如此。学习它,首先要清楚它应运而生,解决了什么问题,而后继往开来,不断更新新的文化。和朋友探讨正则表达式,发现他的用法就是在网上查阅相关regex语法,用了后就忘了,然后使用的时候再看。我想,这不是我的目标。于语法琢磨太多,往往忽略了正则表达式本身。这样我虽然对正则表达式的具体规则有所了解,但终究只见树木不见森林。
技术图书的主要使命是传播专业知识。而专业知识分为框架知识和具体知识。框架性知识需要通过系统的阅读和学习掌握,而大量的具体知识,则主要通过日常工作的积累以及随用随查的学习来逐渐补充。因此,我学习正则表达式也一样,先学其框架,在学具体使用。往这个框架中添加血与肉。那么我想《精通正则表达式》便是不二之选。大概看了目录,前六章中,主要讲原理。后四章,则分别讲解在java,Perl,.net,PHP这几门语言中的具体应用。因此,我想后面四章我可以不用看了,因为这几门语言我都不会。。。但还好Python也支持regex,我可以另寻他途。前六章中,1-3章节主要用于了解和入门,4-6则讲原理和应用。于我而言,初学者嘛,先看懂1-3章节再说吧!
所谓正则表达式,就是一种描述字符串结构模式的形式化表达方式。在发展的初期,这套方法仅限于描述正则文本,故此得名“正则表达式regular expression”。随着正则表达式研究的深入和发展,特别是Perl语言的实践和探索,正则表达式能力已大大突破了传统的、数学上的限制,成为了威力巨大的实用工具,在几乎所有主流语言中获得支持。为什么正则表达式具有如此巨大的魅力? 这可能需要我不断学习探索才能得出的结果。
完整的正则表达式由两种字符构成。特殊字符(也称为元字符metacharacters),其他为文字,也叫普通文本字符normal characters。
完整的正则表达式由小的构建模块单元组成,每个单独的构建模块都很简单,不过因为他们能够以无穷多种方式组合,将它们结合起来实现特殊目标必须依靠经验。