- 零基础PHP学习笔记
- 明日科技编著
- 435字
- 2021-03-12 20:19:22
4.4 正则表达式在PHP中的应用
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/40266-00-104-03.jpg?sign=1738931597-FPTwOLRjHzYZZ384K3msWWznwqidju5f-0-10fc72eefad605f30fe6585f4d6c8160)
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=1738931597-sEqLybVAcCaKRytKRr2dZ5mNmUZUkF6d-0-0fc4b932e7d27954b9ab8e89defe429f)
下面讲解如何使用PHP中常用的preg_match()函数。
preg_match()函数用于执行匹配正则表达式,函数语法如下:
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/105-2.jpg?sign=1738931597-bMJa2QvN46tL0yQMmdtMMyMJNRVzhvtQ-0-1849620687d95a9cb2f9b2db5f875ebf)
参数和返回值如下。
• 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=1738931597-FjpY4IRzo1g8HqDy7MAQjIjC57Xlrq6X-0-ebdab1ba6dcbc9f729ab0d5f90673fed)
运行结果如图4.10所示。
![](https://epubservercos.yuewen.com/7E78CA/19471983208811306/epubprivate/OEBPS/Images/106-1.jpg?sign=1738931597-bfG6FNnNFnNiRYYBZQydl2oMV6IksqHY-0-737152b8ca778c1b6fdb80388e1ab9bb)
图4.10 preg_match()函数检测手机号码格式
学习笔记
preg_match_all()函数用于执行一个全局正则表达式匹配。它会一直搜索subject直到结尾。