语法和JavaScript中的正则语法基本一致。
PHP中的正则函数:
1、preg_match()
preg_match()返回匹配的次数,它的返回值是0或者是1.
0表示不匹配。
1表示匹配一次,因为preg_match在匹配一次之后就停止向后检索了。和js中不加g的情况一样。
查看匹配的结果:
带有子表达式的例子:
2、preg_match_all();
执行正则表达式的全局匹配,类似于js中的带g的匹配。
带有子表达式的例子:
3、preg_replace();
执行正则替换。
替换字符串:
带有子表达式:
替换数组:
4、案例:解决贪婪问题?
无论是JS中,还是PHP中,正则表达式的匹配模式默认都是贪婪模式。
上述代码,查询至少一个字母。但是在实际匹配的过程中,匹配到一个a之后,并没有停止,而是继续向后匹配,得到一个连续的字符串。这就是贪婪模式。
下面在正则表达式后面加入?,表示非贪婪模式:
默认是贪婪模式,必须使用非贪婪模式的例子:
PHP中,强制非贪婪模式:
加入大写的修饰符U即可。
5、PHP中使用正则注意点
PHP中的正则表达式除了//以外,外面还要加引号,这个引号要用单引号。