PHP从入门到精通(第5版)
上QQ阅读APP看书,第一时间看更新

6.1 什么是正则表达式

正则表达式是一种描述字符串结构的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。对于用户来说,可能以前接触过DOS,如果想要匹配当前文件夹下所有的文本文件,可以输入dir *.txt命令,按Enter键后所有.txt文件将会被列出来。这里的*.txt即可理解为一个简单的正则表达式。

在学习正则表达式之前,先来了解一下正则表达式中的几个容易混淆的术语,这对于学习正则表达式有很大的帮助。

 grep:最初是ED编辑器中的一条命令,用来显示文件中特定的内容,后来成为一个独立的工具。

 egrep:grep虽然不断地更新升级,但仍然无法跟上技术的脚步。为此,贝尔实验室推出了egrep,意为“扩展的grep”,这大大增强了正则表达式的能力。

 POSIX(Portable Operating System Interface of Unix):可移植操作系统接口。在grep发展的同时,其他一些开发人员也按照自己的喜好开发出了具有独特风格的版本。但问题也随之而来,有的程序支持某个元字符,而有的程序则不支持。因此就有了POSIX,POSIX是一系列标准,确保了操作系统之间的可移植性。但POSIX和SQL一样,没有成为最终的标准而只能作为一个参考。

 Perl(Practical Extraction and Reporting Language):实际抽取与汇报语言。1987年,Larry Wall发布了Perl。在随后的7年时间里,Perl经历了从Perl1到现在的Perl5的发展,最终Perl成为POSIX之后的另一个标准。

 PCRE:Perl的成功,让其他开发人员在某种程度上要兼容Perl,包括C/C++、Java、Python等都有自己的正则表达式。1997年,Philip Hazel开发了PCRE库,这是兼容Perl正则表达式的一套正则引擎,其他开发人员可以将PCRE整合到自己的语言中,为用户提供丰富的正则功能。许多软件都使用PCRE,PHP正是其中之一。