![零基础PHP学习笔记](https://wfqqreader-1252317822.image.myqcloud.com/cover/195/36710195/b_36710195.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.4 正则表达式在PHP中的应用
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/40266-00-104-03.jpg?sign=1739360760-eZOX77An4StwOFUr2HXccS96jfggOtDh-0-4aef04792b77fc2d30a4dc8713cd2f14)
PHP中提供了两套支持正则表达式的函数库,即PCRE函数库和POSIX函数库。PCRE函数库在执行效率上要略优于POSIX函数库,所以这里只讲解PCRE函数库中的函数。PCRE函数库中常用的函数如表4.4所示。
表4.4 PCRE函数库中常用的函数
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/105-1.jpg?sign=1739360760-tPB9uYSlVcmPSPJ33aVMGdPMEy7yHZBE-0-1fc4e2baeb0cc5e20bcf7b8d41743d35)
下面讲解如何使用PHP中常用的preg_match()函数。
preg_match()函数用于执行匹配正则表达式,函数语法如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/105-2.jpg?sign=1739360760-EwPhZK0dSKldVyeg60ouB5oa6lYWQr84-0-c02d8a72a3ba04ed9bcc0738d0548fb3)
参数和返回值如下。
• pattern:要搜索的模式,字符串类型。
• subject:输入字符串。
• matches:可选参数,如果提供了参数matches,它将被填充为搜索结果。$matches[0]将包含完整模式匹配到的文本,$matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。
• 返回值:返回pattern的匹配次数。它的值将是0次(不匹配)或1次,因为preg_match()函数在第一次匹配后将会停止搜索。如果发生错误则preg_match()函数返回FALSE。
查找匹配个数
在明日学院注册页面中,需要对用户输入的手机号码格式进行检测,以避免用户手误导致注册失败。使用preg_match()函数能够实现该功能,具体代码如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/105-3.jpg?sign=1739360760-I4FJnPWjXvR4VEKXPscdmrPOEKUswHvP-0-4b7483b1a5c5328b831c484e61bb8c7e)
运行结果如图4.10所示。
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/106-1.jpg?sign=1739360760-nuobJZ3aWGws0FSHv57Db4d4jB1LFcPk-0-70e1331ad41e600f981c3538a44634d5)
图4.10 preg_match()函数检测手机号码格式
学习笔记
preg_match_all()函数用于执行一个全局正则表达式匹配。它会一直搜索subject直到结尾。