
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.4 正则表达式在PHP中的应用

PHP中提供了两套支持正则表达式的函数库,即PCRE函数库和POSIX函数库。PCRE函数库在执行效率上要略优于POSIX函数库,所以这里只讲解PCRE函数库中的函数。PCRE函数库中常用的函数如表4.4所示。
表4.4 PCRE函数库中常用的函数

下面讲解如何使用PHP中常用的preg_match()函数。
preg_match()函数用于执行匹配正则表达式,函数语法如下:

参数和返回值如下。
• pattern:要搜索的模式,字符串类型。
• subject:输入字符串。
• matches:可选参数,如果提供了参数matches,它将被填充为搜索结果。$matches[0]将包含完整模式匹配到的文本,$matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。
• 返回值:返回pattern的匹配次数。它的值将是0次(不匹配)或1次,因为preg_match()函数在第一次匹配后将会停止搜索。如果发生错误则preg_match()函数返回FALSE。
查找匹配个数
在明日学院注册页面中,需要对用户输入的手机号码格式进行检测,以避免用户手误导致注册失败。使用preg_match()函数能够实现该功能,具体代码如下:

运行结果如图4.10所示。

图4.10 preg_match()函数检测手机号码格式
学习笔记
preg_match_all()函数用于执行一个全局正则表达式匹配。它会一直搜索subject直到结尾。