正则表达式简介

初次接触正则表达式的读者除了感觉它有些繁琐外,还会有一种深不可测的感觉。其实正则表达式就是描述字符排列模式的一种自定义的语法规则,在PHP给我们提供的系统函数中,使用这种模式对字符串进行匹配、查找、替换及分割等操作。它的应用非常广泛。例如,常见的使用正则表达式去验证用户在表单中提交的用户名、密码、E-mail地址、身份证号码及电话号码等格式是否合法;在用户发布文章时,将输入有URL的地方全部加上对应的连接;按所有标点符号计算文章中一共有多少个句子;抓取网页中某种格式的数据等。正则表达式并不是PHP自己的产物,在很多领域都会见到它的应用,正则表达式并不是PHP自己的产物,在很多领域都会见到它的应用,除了在perl、C#及Java语言中应用外,在我们的B/S架构软件开发中,Linux操作系统、前台JavaScript脚本、后台脚本PHP及MySQL数据库中都可以用到正则表达式。

正则表达式也称为模式表达式,自身具有一套非常完整的、可以编写模式的语法体系,提供了一种灵活且直观的字符串处理方法。正则表达式通过构建具有特定规则的模式,与输入的字符串信息比较在特定的函数中使用从而实现字符串的匹配、查找、替换及分割等操作。下例中给出了三个模式,都是按照正则表达式的语法规则构建的。如下所示:

1
2
3
"/[a-zA-z]+://[^\s]*/" //匹配网址URL的正则表达式
"/<(\S*?)[^>]*>/*?</\1>|<.*?/>/i" //匹配HTML标记的正则表达式
"/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w)*/" //匹配E-mail地址的正则表达式

不要被上例中看似乱码的字符串给吓退,它们就是按照正则表达式的语法规则构建的模式,是一种由普通字符和具有特殊功能的字符组成的字符串。而且要将这些模式字符串,放在特定的正则表达式函数中使用才有效果。

在PHP中支持两套正则表达式的处理函数库。一套是由PCRE库提供的,与Perl语言兼容的正则表达式函数。使用以“preg_”为前缀命名的函数,而且表达式都应被包含在定界符中,如斜线(/)。另一套是由POSIX扩展语法的正则表达式函数,使用以“ereg_”为前缀命名的函数。两套函数库的功能相似,执行效率稍有不同。一般而言,实现相同的功能,使用第一种PCRE库提供的正则表达式效率略占优势。所以本文中主要介绍使用“preg_”为前缀命名的正则表达式函数。

正则表达式处理函数

 

posted on 2014-08-11 20:12  恩聪  阅读(310)  评论(0编辑  收藏  举报

导航