Php/docs/function.ereg-replace

提供:Dev Guides
< Php
移動先:案内検索

ereg_replace

(PHP 4, PHP 5)

ereg_replace正規表現による置換を行う


警告 この関数は PHP 5.3.0 で 非推奨 となり、 PHP 7.0.0 で 削除 されました。

この関数の代替として、これらが使えます。


説明

ereg_replace ( string $pattern , string $replacement , string $string ) : string

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


パラメータ

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


返り値

置換後の文字列を返します。 マッチしなかった場合は、元の文字列をそのまま返します。


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

例1 ereg_replace() の例

<?php$string = "This is a test";echo str_replace(" is", " was", $string);echo ereg_replace("( )is", "\\1was", $string);echo ereg_replace("(( )is)", "\\2was", $string);?>

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

例2 ereg_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.' */?>

例3 URL をリンクで置換する

<?php$text = ereg_replace("alpha:+://[^<>[:space:]]+[[:alnum:]/]",                     '<a href="\\0">\\0</a>', $text);?>

参考

  • ereg() - 正規表現によるマッチングを行う
  • eregi() - 大文字小文字を区別せずに正規表現によるマッチングを行う
  • eregi_replace() - 大文字小文字を区別せずに正規表現による置換を行う
  • str_replace() - 検索文字列に一致したすべての文字列を置換する
  • preg_replace() - 正規表現検索および置換を行う
  • quotemeta() - メタ文字をクォートする