Forum und email

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

導入

ヒント

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

警告

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

正規表現は、複雑な文字列操作の際に使用されます。 PHPはPOSIX 1003.2で定義されたPOSIX拡張正規表現を使用します。 POSIX正規表現に関する詳細については、PHP配布ファイルのregexディレ クトリにある» regexのmanページを参照ください。 このページはmanpageフォーマットであり、読むには man /usr/local/src/regex/regex.7のようにします。

要件

外部ライブラリを必要としません。

インストール手順

警告

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

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

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

実行時設定

設定ディレクティブは定義されていません。

リソース型

リソース型は定義されていません。

定義済み定数

定数は定義されていません。

Example#1 正規表現の例

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

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

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

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

// 空白で区切られた3つ単語を
// $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 — 大文字小文字を区別しないマッチングのための正規表現を作成する