PHP 正則運算式(PCRE)
正則運算式(regular expression)描述了一種字串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。
更多正則運算式的內容可參考我們的:正則運算式 - 教學。
PHP 中我們可以使用 PCRE 擴展來匹配字串的模式。
PCRE 函數
函數 | 描述 |
---|---|
preg_filter | 執行一個正則運算式搜索和替換 |
preg_grep | 返回匹配模式的數組條目 |
preg_last_error | 返回最後一個PCRE正則執行產生的錯誤代碼 |
preg_match_all | 執行一個全局正則運算式匹配 |
preg_match | 執行一個正則運算式匹配 |
preg_quote | 轉義正則運算式字元 |
preg_replace_callback_array | 執行一個正則運算式搜索並且使用一個回調進行替換 |
preg_replace_callback | 執行一個正則運算式搜索並且使用一個回調進行替換 |
preg_replace | 執行一個正則運算式的搜索和替換 |
preg_split | 通過一個正則運算式分隔字串 |
PREG 常量
常量 | 描述 | 自哪個版本起 |
---|---|---|
PREG_PATTERN_ORDER |
結果按照"規則"排序,僅用於preg_match_all(), 即$matches[0]是完整規則的匹配結果, $matches[1]是第一個子組匹配的結果,等等。 | since |
PREG_SET_ORDER |
結果按照"集合"排序,僅用於preg_match_all(), 即$matches[0]保存第一次匹配結果的所有結果(包含子組)資訊, $matches[1]保存第二次的結果資訊,等等。 | |
PREG_OFFSET_CAPTURE |
查看PREG_SPLIT_OFFSET_CAPTURE 的描述。
|
4.3.0 |
PREG_SPLIT_NO_EMPTY |
這個標記告訴 preg_split() 進返回非空部分。 | |
PREG_SPLIT_DELIM_CAPTURE |
這個標記告訴 preg_split() 同時捕獲括弧運算式匹配到的內容。 | 4.0.5 |
PREG_SPLIT_OFFSET_CAPTURE |
如果設置了這個標記,每次出現的匹配子串的偏移量也會被返回。注意,這會改變返回數組中的值, 每個元素都是由匹配子串作為第0個元素,它相對目標字串的偏移量作為第1個元素的數組。這個 標記只能用於 preg_split()。 | 4.3.0 |
PREG_NO_ERROR |
沒有匹配錯誤時調用 preg_last_error() 返回。 | 5.2.0 |
PREG_INTERNAL_ERROR |
如果有PCRE內部錯誤時調用 preg_last_error() 返回。 | 5.2.0 |
PREG_BACKTRACK_LIMIT_ERROR |
如果調用回溯限制超出,調用preg_last_error()時返回。 | 5.2.0 |
PREG_RECURSION_LIMIT_ERROR |
如果遞歸限制超出,調用preg_last_error()時返回。 | 5.2.0 |
PREG_BAD_UTF8_ERROR |
如果最後一個錯誤時由於異常的utf-8數據(僅在運行在 UTF-8 模式正則運算式下可用)。 導致的,調用preg_last_error()返回。 | 5.2.0 |
PREG_BAD_UTF8_OFFSET_ERROR |
如果偏移量與合法的urf-8代碼不匹配(僅在運行在 UTF-8 模式正則運算式下可用)。 調用preg_last_error()返回。 | 5.3.0 |
PCRE_VERSION |
PCRE版本號和發佈日期(比如: "7.0 18-Dec-2006")。 | 5.2.4 |