CXIV. POSIX 增加正則表達式函數

簡介

提示: PHP 也支援使用 Perl 相容語法的 PCRE 函數,支援 non-greedy 符合,斷言,條件子模式以及其它許多 POSIX 增加正則表達式語法所不支援的特性。

警示

本類正則表達式並不能安全用於二進位模式。PCRE 函數則可以。

正則表達式在 PHP 中用來做複雜的字串動作。PHP 使用 POSIX 增加的正則表達式,其由 POSIX 1003.2 定義。對於 POSIX 正則表達式完整的說明見 regex 手冊頁,位於 PHP 發佈包中的 regex 目錄下。這是 UNIX 下的手冊格式,需要用類似如下指令 man /usr/local/src/regex/regex.7 來閱讀。

需求

要編譯本增加模組無需外部庫檔案。

安裝

警示

除非知道自己在做什麼,否則不要改變 TYPE。

要啟動 regexp 的支援在配置 PHP 時加上 --with-regex[=TYPE]。TYPE 可以是 system,apache 或 php 之一。預設使用 php。

PHP 的 Windows 版本已經內建該增加模組的支援。無需加載任何附加增加庫即可使用這些函數。

運行時配置

本增加模組在 php.ini 中未定義任何配置選項。

資源類型

本增加模組未定義任何資源類型。

預定義常量

本增加模組未定義任何常量。

範例

例子 1. 正則表達式例子

<?php
// 若果在 $string 中任何地方找到 "abc" 則返回 &true;
ereg ("abc"$string);

// 若果 $string 以 "abc" 開頭則返回 &true;
ereg ("^abc"$string);

// 若果 $string 以 "abc" 結尾則返回 &true;
ereg ("abc$"$string);

// 若果會員瀏覽器是 Netscape 2,3 或 MSIE 3 則返回 &true;
eregi ("(ozilla.[23]|MSIE.3)"$HTTP_USER_AGENT);

// 將三個空格分隔的單詞放入 $regs[1],$regs[2] 和 $regs[3] 中
ereg ("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)"$string,$regs);

// 將 <br /> 旗標放到 $string 開頭
$string ereg_replace ("^""<br />"$string);

// 將 <br /> 旗標放到 $string 結尾
$string ereg_replace ("$""<br />"$string);

// 移除 $string 中的所有換行符
$string ereg_replace ("\n"""$string);
?>

參見

Perl 相容語法的正則表達式見 PCRE 函數。簡單的指令行直譯器風格的通配符符合由 fnmatch() 提供。

目錄
ereg_replace -- 置換正則表達式
ereg -- 正則表達式符合
eregi_replace -- 不區分大小寫置換正則表達式
eregi -- 不區分大小寫的正則表達式符合
split -- 用正則表達式將字串分割到陣列中
spliti --  用正則表達式不區分大小寫將字串分割到陣列中
sql_regcase --  產生用於不區分大小的符合的正則表達式