ereg
(PHP 4, PHP 5)
ereg — 正規表現によるマッチングを行う
説明
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() にはより多くの部分文字列にマッチする
能力があります。マッチするものが見付からなかった場合、
|
例
例1 ereg() の例
以下のサンプルコードは、ISO フォーマット(YYYY-MM-DD) で格納されている 日付を DD.MM.YYYY フォーマットで表示するものです。
<?phpif (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() - メタ文字をクォートする