語法和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中的正則表達式除了//以外,外面還要加引號,這個引號要用單引號。