PHP的Regex

來源:互聯網
上載者:User

標籤:join   個數   標記   str   替換   連結   pcre   xpl   運算式   

Regex

PHP支援的Regex有兩套,一套是PCRE,與perl相容的Regex,以preg_為首碼的函數,另外一套是POSIX擴充文法的Regex,使用以ereg_為首碼的函數,PCRE提供的Regex效率略佔優勢。

1. Regex文法和perl中一樣;

2. 字串尋找

    preg_match():接受三個參數,第一個是pattern,第二個是就具體的字串,第三個參數提供一個數組,儲存匹配的內容,其中0下標為匹配的整體,而1開始的表示捕獲的內容;

    preg_match_all():PHP中沒有模式修正符號:g,用該函數替代,完成全部搜尋的功能,區別的是該函數接受第四個選擇性參數,當第四個參數為PREG_SET_ORDER,下標0的值開始表示捕獲的內容;

    preg_grep():第二個參數不再是字串,而是一個包含字串的數組,會對數組中每個元素進行匹配,並且返回一個匹配成功的數組;

    strstr():傳入兩個字串,在第一個字串中搜尋第二個字串,返回從第一個字串從第一次搜尋到的位置開始的部分;stristr()是忽略大小寫版本;

    strpos():返回字串在另外一個字串中第一次出現的位置,如果沒有找到則返回false,strrpos()是從末尾開始尋找的版本;

    substr():返回一個字串的一個部分,指定開始和結束位置;閉區間;

3. 字串替換:

    preg_replace():第一個參數是模式,第二個參數是需要替換掉的內容,第三個參數是字串,前兩個參數既可以是單個的模式和字串,也可以是一個包含多個模式、字串的數組,數組的內容應該對應,長度相同;

    str_replace():第一個參數是尋找的字串,第二個參數是替換的字串,第三個參數是需要被替換的字串內容,第四個儲存替換的次數;str_ireplace()是大小寫忽略版本;

4. 字串分割和連結:

    preg_split():傳入兩個參數,第一個參數傳入匹配模式,第二個為需要分割的字串,第三個選擇性參數限制最多返回的子串個數,第四個參數flag是以下標記的任意組合:

    PREG_SPLIT_NO_EMPTY:使preg_split()只返回非空成分 ;
    PREG_SPLIT_DELIM_CAPTURE:使得可以捕獲並返回括號運算式 ;
    PREG_SPLIT_OFFSET_CAPTURE:使得返回每個出現的匹配結果的同時,返回所屬字串的位移量,最終最為一個二元數組;

    explode():傳入兩個字串,第一個為分割標記字串,第二個為被分割的字串,第三個選擇性參數限制最多返回的子串個數;相當於split();

    implode():第一個參數是連結字串,第二個參數提供一個字串數組,返回使用連結字串連結數組中字串後的字串;相當於join();

 5. 在以上三種基本操作中,如果可以用字串函數完成的盡量使用字串函數完成,Regex盡量在必須使用的時候才用

PHP的Regex

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.