1.3 什么是正则表达式
现在,你已经知道正则表达式是用来干什么的了,我们再来给它下个定义。简单地说,正则表达式是一些用来匹配和处理文本的字符串。正则表达式是用正则表达式语言创建的,这种语言的用途就是为了解决我们前面所描述的种种问题。与其他程序设计语言一样,正则表达式语言也有需要你们去学习的特殊语法和指令,它们正是本书要教给大家的东西。
正则表达式语言并不是一种完备的程序设计语言,它甚至算不上是一种能够直接安装并运行的程序。更准确地说,正则表达式语言是内置于其他语言或软件产品里的“迷你”语言。好在现在几乎所有的语言或工具都支持正则表达式,但是正则表达式与你正在使用的语言或工具可以说毫无相似之处。正则表达式语言虽然也被称为一种语言,但它与人们对语言的印象相去甚远。
注意 正则表达式起源于1950年代在数学领域的一些研究工作。几年之后,计算机领域借鉴那些研究工作的成果和思路开发出了Unix世界里的Perl语言和grep等工具程序。在许多年里,正则表达式只流行于Unix平台(Unix程序员用它们来解决我们前面所描述的各种问题),但这种情况早已发生了变化,现在几乎所有的计算平台都支持正则表达式,只是具体方式和支持程度略有差异而已。
说完这些掌故,我们再来看几个例子。下面都是合法的正则表达式(我们稍后再解释它们的用途):
❑ Ben
❑.
❑ www\ .forta\ .com
❑ [a-zA-Z0-9_.]*
❑ <[Hh]1>.*</[Hh]1>
❑ \r\n\r\n
❑ \d{3,3}-\d{3,3}-\d{4,4}
请注意,语法是正则表达式最容易掌握的部分,真正的挑战是学会如何运用那些语法把实际问题分解为一系列正则表达式并最终解决。与学习其他程序设计语言一样,只靠读书是学不会如何灵活运用语法正则的,你必须通过亲身实践才能真正掌握它们。