今天就跟大家聊聊有關PHP中元字符的作用是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
元字符(原子修飾符)
原子數量修飾符
+表示前面的原子出現-次或者多次
?表示前面的原子出現e次或者 1次
*表示前面的原子出現B次1次或者多次
{m,n}表示前面的原子出現最少H次,最多N次
{}表示前面的原子出現指定次
{m,}表示前面的原子最少出現次以上
詞邊界修飾符(了解)
什么是詞邊界
可以分割一個單詞的字符都是詞邊界包括空格,標簽符號,特殊字符,字符串的開始和結束,每行的結束部分。
不可以當做詞邊界的部分就是數字、字母和_
\b表示詞邊界
\B表示非詞邊界
字符串邊界修飾符(也就是開始和結束)
表示以指定的字符開頭的內容
$表示以指定的字符結尾的內容
^字符串$表示精確匹配某個字符串多一個少一個都是錯誤
如果要使用^和$可以匹配每行的開始和結束部分, 需要使用模式修正符m 視為多行處理。
選擇修飾符
模式單元()
1.改變優先級
2.將多個原子視為一個原子,目的是為了使用原子數量修飾符。
3.將匹配到括號的內容占時存為內存當中。
4.如果使用()僅僅為了模擬一個原子使用原子數量修飾符,那么可以在括號的開始處使用? :來解除存于內存的作用。提高效率。
假如我想去匹配一個內容(Google),此時我們有一個要求就是,我們剛剛輸出的google的第二個o可以有也可以沒有,如果我們定義一個$pattern = '/google/';此時我們定義完之后,我們進行匹配,發現匹配結果是成功的(運行結果如下所示),但是當我們把第二個o刪掉,我們的匹配結果是失敗的,
<?php //進行匹配 $str = $_POST['str']; //$pattern = '/a/' ; //調用正則匹配函數 $pattern = '/google/'; $result = preg_match($pattern , $str , $match); echo ' 匹配結果為: '.$result; echo '<hr/>' ; if ( $result){ echo '<font color="pink" size="5 ">匹配成功</font>'; }else{ echo '<font color="red">匹配失敗</font>'; } var_dump($match); ?>
代碼結果如下:
此時,如果我們想設置第二個o可以有可以沒有,我們就可以在第二個o后面插入一個問號(?表示前面的原子可以出現零次或者是一次),此時我們再一次進行匹配,會發現結果匹配成功:
<?php //進行匹配 $str = $_POST['str']; //$pattern = '/a/' ; //調用正則匹配函數 $pattern = '/goo?gle/'; $result = preg_match($pattern , $str , $match); echo ' 匹配結果為: '.$result; echo '<hr/>' ; if ( $result){ echo '<font color="pink" size="5 ">匹配成功</font>'; }else{ echo '<font color="red">匹配失敗</font>'; } var_dump($match); ?>
代碼結果如下:
如果說我們想讓(o)出現一次甚至多次,我們就不能再使用(?)把問號改為加號
$pattern = '/goo+gle/';
接著我們運行結果顯示如下:
看完上述內容,你們對PHP中元字符的作用是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。