正規表現によるマッチングを行う

# ereg

(PHP 4, PHP 5)

ereg — 正規表現によるマッチングを行う

警告

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

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

- preg_match()

### 説明

ereg ( string `$pattern` , string `$string` [, array `&$regs` ] ) : int

`pattern` で指定した正規表現 により、大文字小文字を区別して `string` を検索します。

### パラメータ

`pattern`

  大文字小文字を区別する正規表現。

`string`

  入力文字列。

`regs`

  `pattern` の括弧でくくられた部分文字列に マッチし、かつこの関数が 3 番目の引数 `regs` を 指定してコールされた場合、マッチした部分が配列 `regs` に格納されます。

  $regs[1] は最初の左括弧が始まる部分文字列を保持、 $regs[2] は二番目の左括弧が始まる部分文字列を保持、 といったようになっています。$regs[0] は マッチした文字列全体のコピーを保持しています。

### 返り値

`string` の中で `pattern` がマッチした場合にはマッチした文字列の長さを返し、マッチしなかった場合 またはエラーとなった場合は `FALSE` を返します。

オプションのパラメータ `regs` が渡されなかったり マッチした文字列の長さが 0 だったりした場合は、この関数は 1 を返します。

### 変更履歴

バージョン | 説明
--- | ---
4.1.0 | PHP 4.1.0 以前(4.1.0 を含む)のバージョンでは、$regs にはちょうど 10 個の要素が代入されました。これは、実際にマッチした 括弧付きのサブ文字列が 10 より多くても少なくても同じでした。ただし、 ereg() にはより多くの部分文字列にマッチする 能力があります。マッチするものが見付からなかった場合、 $regs は、ereg() により 書き換えられません。

### 例

例1 ereg() の例

以下のサンプルコードは、ISO フォーマット(YYYY-MM-DD) で格納されている 日付を DD.MM.YYYY フォーマットで表示するものです。

`<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
echo "$regs[3].$regs[2].$regs[1]";
} else {
echo "Invalid date format: $date";
}
?>`

### 参考

- eregi() - 大文字小文字を区別せずに正規表現によるマッチングを行う
- ereg_replace() - 正規表現による置換を行う
- eregi_replace() - 大文字小文字を区別せずに正規表現による置換を行う
- preg_match() - 正規表現によるマッチングを行う
- strpos() - 文字列内の部分文字列が最初に現れる場所を見つける
- strstr() - 文字列が最初に現れる位置を見つける
- quotemeta() - メタ文字をクォートする