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