PHP學習之深入理解正則反參照和跳脫符

2020-07-16 10:05:32
本篇文章主要講述的是正規表示式的反參照和跳脫符的原理以及應用,具有一定的參考價值,感興趣的朋友可以了解一下。

一、正則反參照

正規表示式,在PHP中我經常能用到。用的場景也很多,比如,正則匹配字串,判斷字元是否存在,正則替換等等。

例子一:

$string = 'abcd';
$re = preg_replace('/(a)/', '1A',$string);echo $re;//結果
// aAbcd

這裡用到了正則的捕獲組概念和反參照。

解釋:

捕獲組我們可以從第一個`(` 向後數, 第一個括號裡面匹配到的內容,我們可以用 1 來參照,為了看的明顯,特意拼接了 `A` ,其實我們還可以用 $+數位來表示第幾個捕獲組。 這裡可以用$1,效果和1一樣。

例子二:

$string = 'abcd';
$re = preg_replace('/(a)/', '$1B',$string);
echo $re;

//結果
//aBbcd

二、跳脫符

什麼是跳脫符?

在PHP中我們用 `` 來轉譯一些特殊的字元。

例子三:

$string = 'abcd';
$re = preg_replace('/(a)/', '1B',$string);
echo $re;//結果
//aBbcd

解釋: 這裡的 1 把是作為捕獲組的反參照。

例子四:

$string = 'abcd';
$re = preg_replace('/(a)/', '1B',$string);
echo $re;//結果
//aBcd

解釋:這裡的` 1 `,第一個``,轉譯了第二個``, 那麼就成了 `1B` , 其實效果和例子三的 `1` 是一樣的。

例子五:

$string = 'abcd';
$re = preg_replace('/(a)/', '1B',$string);
echo $re;

//結果
//1Bbcd

解釋:這裡的`1`,第一個``,轉譯了第二個``,那麼就剩下了`1`,`` 輸出 ``,最後,就剩下 `1`了。

三、總結

1、PHP正則中的反參照,1$1 效果是一樣的,我們都可以拿來用。

2、PHP正則中的跳脫符,當遇到多個`` 的時候,我們可以先"去掉" 一個,然後,在去匹配。這樣就好理解啦。

相關教學:正規表示式視訊教學

以上就是PHP學習之深入理解正則反參照和跳脫符的詳細內容,更多請關注TW511.COM其它相關文章!