微软的正则表达式教程(一):正则表达式简介
认识正则表达式
如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它
们并不是您想象的那么新奇。
请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻
找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如
'data?.dat' 的模式可以找到下述文件:
data1.dat
data2.dat
datax.dat
dataN.dat
如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量。'data*.dat' 可以匹配下述
所有文件名:
data.dat
data1.dat
data2.dat
data12.dat
datax.dat
dataXYZ.dat
尽管这种搜索文件的方法肯定很有用,但也十分有限。? 和 * 通配符的有限能力可以
使你对正则表达式能做什么有一个概念,不过正则表达式的功能更强大,也更灵活。
正则表达式的早期起源
正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。Warren
McCulloch 和 Walter Pitts 这两位神经生理学家研究出一种数学方式来描述这些神
经网络。
1956 年, 一位叫 Stephen Kleene 的美国数学家在 McCulloch 和 Pitts 早期工作的
基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。
正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个
术语。
随后,发现可以将这一工作应用于使用 Ken Thompson 的计算搜索算法的一些早期
研究,Ken Thompson 是 Unix 的主要发明人。正则表达式的第一个实用应用程序就
是 Unix 中的 qed 编辑器。