第2章 入门示例扩展
Perl语言是一门功能强大的脚本语言,诞生于20世纪80年代末期,其思想主要来自其他的编程语言和工具。Perl关于文本处理和正则表达式的许多概念来自两种专业化的语言awk和sed。
第3章 正则表达式的特性和流派概览
使用正则表达式时,主要有3个问题值得注意:
(1)支持的元字符,以及这些元字符的意义。这通常称为正则表达式的”流派“。
(2)正则表达式与语言或工具的”交互“方式。譬如如何进行正则表达式操作,容许进行哪些操作,以及这些操作的目标文本类型。
(3)正则表达式引擎如何将表达式应用到文本。语言或工具的设计者实现正则表达式的方法,对正则表达式能够取得的结果有重要的影响。
正则表达式的起源
最初的想法来自20世纪40年代的两位神经学家,Warren McCulloch和Walter Pitts,他们研究出一种模型,认为神经系统在神经元层面上就是这样工作的......。若干年后,数学家Stephen Kleene在代数学中正式描述了这种被他称为”正则集合“的模型,正则表达式才成为现实。Stephen发明了一套简洁的表示正则集合的方法,他称之为”正则表达式“。
The Role of Finite Automata in the Development of Modern Computing Theory
关于在计算方面使用正则表达式的资料,最早发表的是1968年Ken Thompsom的文章Regular Expression Search Algorithm,在文中,他描述了一种正则表达式编辑器,该编辑器生成了IBM 7094的object代码。由此也诞生了他的qed,这种编辑器后来成了Unix中ed编辑器的基础。grep中的元字符
grep不支持多选结构
grep的发展历程
egrep的发展历程
Alfred Aho在AT&T的贝尔实验室写出了egrep
其他工具的发展历程
例如awk、lex和sed
1986年,Henry Spencer发布了用C语言写的正则表达式包
Perl的发展历程
1987年12月,Larry发布了Perl Version 1。
常用的元字符和特性