程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP中的正則表達式及PCRE函數

PHP中的正則表達式及PCRE函數

編輯:關於PHP編程

PHP中的正則表達式及PCRE函數


PCRE

PHP有兩種使用不同的方式來使用正則表達式:PCRE(Perl兼容表示法,preg_*)函數 和 POSIX(POSIX 擴展表示法,ereg_*) 函數。幸運的是,POSIX 家族函數從 PHP 5.3.0 開始就被棄用了。


正則表達式

界定符

經常使用的分隔符是正斜線(/)、hash符號(#) 以及取反符號(~)。下面的例子都是使用合法分隔符的模式

/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%
{this is a pattern}

可以在結束分隔符後面增加模式修飾符

元字符

一些字符被賦予 特殊的涵義,使其不再單純的代表自己,模式中的這種有特殊涵義的編碼字符 稱為 元字符

元字符 描述   一般用於轉義字符 ^ 斷言目標的開始位置(或在多行模式下是行首) $ 斷言目標的結束位置(或在多行模式下是行尾) . 匹配除換行符外的任何字符(默認) [ 開始字符類定義 ] 結束字符類定義 | 開始一個可選分支 ( 子組的開始標記 ) 子組的結束標記 ? 作為量詞,表示 0 次或 1 次匹配。位於量詞後面用於改變量詞的貪婪特性。 (查閱量詞) * 量詞,0 次或多次匹配 + 量詞,1 次或多次匹配 { 自定義量詞開始標記 } 自定義量詞結束標記


模式中方括號內的部分稱為“字符類”。 在一個字符類中僅有以下可用元字符

元字符 描述   轉義字符 ^ 僅在作為第一個字符(方括號內)時,表明字符類取反 - 標記字符范圍

字符類

方括號中的內容就是字符類

有一些預定義字符類

字符類 描述 d 任意十進制數字 D 任意非十進制數字 h 任意水平空白字符(since PHP 5.2.4) H 任意非水平空白字符(since PHP 5.2.4) s 任意空白字符 S 任意非空白字符 任意垂直空白字符(since PHP 5.2.4) V 任意非垂直空白字符(since PHP 5.2.4) w 任意單詞字符 W 任意非單詞字符

原子

可見原子

abc

不可見原子

量詞

量詞   * 等價於 {0,} + 等價於 {1,} ? 等價於 {0,1}

斷言

簡單的斷言代碼有、B、 A、 Z、z、 ^、$

前瞻斷言

從當前位置向前測試

(?=) (?!)

w+(?=;)匹配一個單詞緊跟著一個分號但是匹配結果不會包含分號

後瞻斷言

從當前位置向後測試

(?<=) (?

(?用於查找任何前面不是 ”foo” 的 ”bar”

模式修飾符

模式修飾符   U 這個修飾符逆轉了量詞的”貪婪”模式,使量詞默認為非貪婪的 i 大小寫不敏感匹配 x 忽略空白 s 點號元字符匹配所有字符,包含換行符。如果沒有這個修飾符,點號不匹配換行符  

PCRE 函數

preg_filter — 執行一個正則表達式搜索和替換

preg_grep — 返回匹配模式的數組條目

preg_last_error — 返回最後一個PCRE正則執行產生的錯誤代碼

preg_match_all — 執行一個全局正則表達式匹配

preg_match — 執行一個正則表達式匹配

preg_quote — 轉義正則表達式字符

preg_replace_callback_array — Perform a regular expression search and replace using callbacks

preg_replace_callback — 執行一個正則表達式搜索並且使用一個回調進行替換

preg_replace — 執行一個正則表達式的搜索和替換

preg_split — 通過一個正則表達式分隔字符串

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved