🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
语法和JavaScript中的正则语法基本一致。 PHP中的正则函数: ![](https://img.kancloud.cn/44/0b/440b26c7500b71e4c9a6bfe8415735df_1049x425.png) # 1、preg_match() preg_match()返回匹配的次数,它的返回值是0或者是1. 0表示不匹配。 1表示匹配一次,因为preg_match在匹配一次之后就停止向后检索了。和js中不加g的情况一样。 查看匹配的结果: ![](https://img.kancloud.cn/a4/fb/a4fb36712f5a7e38dde28bd5df360831_655x364.png) 带有子表达式的例子: ![](https://img.kancloud.cn/98/a6/98a62521792ab93d62b762517117d52a_754x169.png) # 2、preg_match_all(); 执行正则表达式的全局匹配,类似于js中的带g的匹配。 ![](https://img.kancloud.cn/8d/4e/8d4e31ff9feafbc6c3f3648a59fd4071_750x304.png) 带有子表达式的例子: ![](https://img.kancloud.cn/b7/7c/b77c8db5285fd0300507c793ac9ea922_907x430.png) # 3、preg_replace(); 执行正则替换。 替换字符串: ![](https://img.kancloud.cn/79/f8/79f819d5f3f6f26cbf0353ce7d7e614e_612x196.png) 带有子表达式: ![](https://img.kancloud.cn/f4/02/f402c71f0f776145dd6ed47a4b5c08ca_581x218.png) 替换数组: # 4、案例:解决贪婪问题? 无论是JS中,还是PHP中,正则表达式的匹配模式默认都是贪婪模式。 ![](https://img.kancloud.cn/84/93/8493cddd8db3a94679897b449c718363_684x129.png) 上述代码,查询至少一个字母。但是在实际匹配的过程中,匹配到一个a之后,并没有停止,而是继续向后匹配,得到一个连续的字符串。这就是贪婪模式。 下面在正则表达式后面加入?,表示非贪婪模式: ![](https://img.kancloud.cn/92/13/921355d26d628945093ea315e6ac24d1_897x153.png) 默认是贪婪模式,必须使用非贪婪模式的例子: ![](https://img.kancloud.cn/c7/15/c71589c2d9559a93c17c0aff77577c8c_981x135.png) PHP中,强制非贪婪模式: 加入大写的修饰符U即可。 ![](https://img.kancloud.cn/4c/5d/4c5db00f3f896998328878af3e347b7d_991x178.png) # 5、PHP中使用正则注意点 PHP中的正则表达式除了//以外,外面还要加引号,这个引号要用**单引号**。 ![](https://img.kancloud.cn/e2/08/e20831708100d428d1cb334ad86b029d_614x240.png)