CakeFest 2024: The Official CakePHP Conference

mb_eregi

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_eregiマルチバイトをサポートし、大文字小文字を無視した正規表現マッチ

説明

mb_eregi(string $pattern, string $string, array &$matches = null): bool

マルチバイトをサポートし、かつ大文字小文字を無視した正規表現マッチを実行します。

パラメータ

pattern

正規表現のパターン

string

検索対象の string

matches

pattern の 括弧で囲まれた部分文字列にマッチする部分が見つかり、 かつ3番目の引数 matches が渡された場合、 マッチした部分が matches 配列に格納されます。 何もマッチしなかった場合、 matches には空の配列が設定されます。

$matches[1] には、最初の左括弧から始まる部分文字列が含まれます。 $matches[2] には、二番目の左括弧から始まる部分文字列が含まれます。 以後同様です。 $matches[0] には、マッチした文字列全体のコピーが含まれます。

戻り値

string 内に pattern にマッチする文字列があるかを返します。

変更履歴

バージョン 説明
8.0.0 この関数は、成功時に true を返すようになりました。 これより前のバージョンでは、 string 内に pattern にマッチする文字列が存在し、かつ matches が渡された場合、 マッチした文字列のバイト長を返していました。 matches が渡されなかった場合、 あるいはマッチした文字列の長さが 0 だった場合、 この関数は 1 を返していました。
7.1.0 mb_eregi() 関数は、何もマッチしなかった場合に matches に空の配列を設定するようになりました。 これより前のバージョンでは、何もマッチしなかった場合に matches を変更しませんでした。

注意

注意:

内部エンコーディングあるいは mb_regex_encoding() で指定した文字エンコーディングを、 この関数の文字エンコーディングとして使用します。

参考

  • mb_regex_encoding() - 現在のマルチバイト正規表現用のエンコーディングを取得または設定する
  • mb_ereg() - マルチバイト対応の正規表現マッチ

add a note

User Contributed Notes 3 notes

up
5
bubalula at gmail dot com
13 years ago
This function does not work - it is not case insensitive for non latin characters.
up
0
steve at brainwashstudios dot com
20 years ago
When this function is perfected, and is not experimental, it may be very usefull in the searching and pinpointing of places inside large text files.
up
-9
lasmit at what dot com
12 years ago
I simulated it:
<?php
$text
= 'Äpfel';
mb_internal_encoding( 'utf-8' );
printf( "%d\n", mb_eregi( 'äpfel', $text ) ); // Output: 0
printf( "%d\n", mb_ereg( 'äpfel', mb_strtolower( $text ) ) ); // Output: 1
printf( "%d\n", mb_eregi( 'äpfel', mb_strtolower( $text ) ) ); // Output: 1
?>
To Top