XCIII. 正規表現(regex)関数 (POSIX拡張サポート)

導入

注意: PHPは、PCRE関数によりPerl互換の構 文を使用する正規表現式もサポートします。これらの関数は、「ものぐさ」 マッチ、言明、条件付きサブパターン、そしてPOSIX拡張正規表現構文 でサポートされていない他の複数の機能をサポートします。

警告

これらの正規表現関数はバイナリセーフではありません。PCRE関数はバイナリセーフです。

PHPにおいて正規表現は複雑な文字列操作に使用されます。 次の正規表現関数がサポートされます。

これらの関数は、全て最初の引数に正規表現をとります。 PHPはPOSIX 1003.2で定義されたPOSIX拡張正規表現を使用します。 POSIX正規表現に関する詳細については、PHP配布ファイルのregexディレ クトリにあるregexのmanページを参照下さい。 このページはmanpageフォーマットであり、読むには man /usr/local/src/regex/regex.7のようにします。

要件

これらの関数は、標準モジュールの一部と して利用可能であり、常に使用できます。

インストール手順

PHPで正規表現のサポートを有効にするには、 --with-regex=TYPEを指定して PHPのconfigureを行って下さい。TYPEは、system, apache, phpのどれかと します。デフォルトではphpを使用します。

注意: 動作に関する知識がある場合以外は、TYPEを変更しないで下さい。

Windows版のPHPには この拡張モジュールのサポートが組み込まれています。これらの関数を使用 するために拡張モジュールを追加でロードする必要はありません。

実行用の設定

この拡張モジュールは設定ディレクティブを全く 定義しません。

リソース型

この拡張モジュールはリソース型を全く定義し ません。

定義済みの定数

この拡張モジュールは定数を全く定義しませ ん。

例 1. 正規表現の例

ereg ("abc", $string);            
/* "abc" が $string のどこかにある場合に true を返す */

ereg ("^abc", $string);
/* "abc" が $string の最初にある場合に true を返す */

ereg ("abc$", $string);
/* "abc"; が $string の最後にある場合に true を返す */

eregi ("(ozilla.[23]|MSIE.3)", $HTTP_USER_AGENT);  
/* クライアントブラウザがNetscape 2, 3またはMSIE 3である場合にtrue を返す */

ereg ("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string,$regs);
/* 空白で区切られた3つ単語を
$regs[1], $regs[2],$regs[3]に代入する */

$string = ereg_replace ("^", "<br />", $string);
/* <br /> タグを $string の先頭に挿入する */
  
$string = ereg_replace ("$", "<br />", $string);
/* <br /> タグを $string の最後に挿入する */

$string = ereg_replace ("\n", "", $string);
/* $string の改行文字を全て取り除く */

以下も参照下さい:

Perl互換の構文を有する正規表現については、 PCRE関数を参照して下さい。 簡単なシェル形式のワイルドカードパターンマッチングが fnmatch()で提供されています。

目次
ereg_replace -- 正規表現による置換
ereg -- 正規表現にマッチさせる
eregi_replace -- 大文字小文字を区別せずに正規表現による置換を行う
eregi --  大文字小文字を区別せずに正規表現によるマッチングを行う
split -- 正規表現により文字列を分割し、配列に格納する
spliti --  大文字小文字を区別しない正規表現により文字列を分割し、配列に入れる
sql_regcase --  大文字小文字を区別しないマッチングのための正規表現を作成する