PHP マニュアル
前のページ |  | 次のページ

# ereg_replace

(PHP 3, PHP 4 )

ereg_replace -- 正規表現による置換

## 説明

string ereg_replace ( string pattern, string replacement, string string)

> 注意 Perl互換の正規表現構文を使用する preg_replace()は、しばしば ereg_replace()よりも速い代替関数です。

この関数は、`string`をスキャンして `pattern`にマッチするものを探し、 マッチしたテキストを`replacement` で置換します。

置換後の文字列が返されます。(マッチしなかった場合は、 元の文字列が返されます。)

`pattern`の中に括弧でくくられた部分 文字列が含まれている場合、`replacement` の中に`\\`数字`` のような部分文字列を埋め込むこともできます。この部分は、 「数字」番目の括弧でくくられた部分文字列にマッチする文字列 に置き換えられます。また、`\\0`は文字列全体 を指します。9個までの部分文字列を使うことができます。括弧は 入れ子になっていても構いません。この場合は開き括弧 '(' が 最大9個まで使用可能です。

`string`においてマッチするものがなかった 場合、`string`は変更されずに返されます。

たとえば、以下のサンプルコードは"This was a test" と3回表示します。

例 1ereg_replace()の例
    $string = "This is a test";
    echo ereg_replace (" is", " was", $string);
    echo ereg_replace ("( )is", "\\1was", $string);
    echo ereg_replace ("(( )is)", "\\2was", $string);

注意しなければならないのは、パラメータ `replacement` として整数値を使用する場合、 期待する結果が得られない可能性があります。これは、 ereg_replace() が文字の値を数値として解釈し、 使用するためです。例えば、次のようになります。

例 2ereg_replace() の例
    <?php
    /* これは期待した通りに動作しません。 */
    $num = 4;
    $string = "This string has four words.";
    $string = ereg_replace('four', $num, $string);
    echo $string;   /* 出力: 'This string has   words.' */

    /* これは動作します。 */
    $num = '4';
    $string = "This string has four words.";
    $string = ereg_replace('four', $num, $string);
    echo $string;   /* 出力: 'This string has 4 words.' */
    ?>

例 3URLをリンクで置換する
    $text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                         "<a href=\"\\0\">\\0</a>", $text);

ereg(), eregi(), eregi_replace(), str_replace(), preg_match()も参照下さい。

前のページ | ホーム | 次のページ
正規表現(regex)関数 (POSIX拡張サポート) | 上に戻る | ereg