Signatur
Beschreibung
mb_ereg_match() prüft, ob der gesamte übergebene String $string mit dem regulären Ausdruck $pattern übereinstimmt. Im Gegensatz zu mb_ereg() wird kein Treffer gesucht — der gesamte String muss dem Muster entsprechen. Die Funktion ist daher besonders geeignet, wenn eine vollständige Validierung eines Eingabestrings gewünscht ist (z. B. Prüfung ob ein String ausschließlich aus bestimmten Zeichen besteht).
Die Funktion arbeitet mit der Oniguruma-Bibliothek und unterstützt Multibyte-Zeichenkodierungen wie UTF-8, EUC-JP, SJIS u. a. Die verwendete Zeichenkodierung wird über mb_regex_encoding() festgelegt und sollte zur Kodierung des verarbeiteten Strings passen.
Über den optionalen Parameter $options lassen sich Regex-Optionen wie Groß-/Kleinschreibungsignorierung (i), mehrzeiliger Modus (m) oder erweiterter Modus (x) steuern. Die Optionen werden als String übergeben, z. B. 'imx'.
Zu beachten ist, dass mb_ereg_match() den regulären Ausdruck implizit am Anfang verankert (entspricht ^), jedoch nicht zwingend am Ende — für eine vollständige Übereinstimmung sollte $ am Ende des Musters genutzt werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $pattern Pflicht | string | Der reguläre Ausdruck als String. Verwendet Oniguruma-Regex-Syntax. Begrenzer wie in PCRE (/pattern/) werden nicht verwendet. |
|
| $string Pflicht | string | Der zu prüfende Eingabe-String. Sollte in der über mb_regex_encoding() gesetzten Kodierung vorliegen. |
|
| $options | string|null | null | Optionale Regex-Modifikatoren als String, z. B. 'i' (Groß-/Kleinschreibung ignorieren), 'm' (mehrzeilig), 'x' (erweiterter Modus). Werden kombiniert als 'imx'. |
Rückgabewert
true zurück, wenn der String mit dem regulären Ausdruck übereinstimmt, andernfalls false.Beispiele
Validierung eines japanischen Hiragana-Strings
<?php
mb_regex_encoding('UTF-8');
$hiragana = 'あいうえお';
$latin = 'hello';
// Prüft ob der String ausschließlich aus Hiragana-Zeichen besteht
var_dump(mb_ereg_match('^[\x{3041}-\x{3096}]+$', $hiragana)); // true
var_dump(mb_ereg_match('^[\x{3041}-\x{3096}]+$', $latin)); // false
Einfache Eingabevalidierung (nur Buchstaben und Ziffern)
<?php
mb_regex_encoding('UTF-8');
$valid = 'BenutzerName123';
$invalid = 'Benutzer Name!';
// Prüft ob der String nur alphanumerische Zeichen enthält
if (mb_ereg_match('^[a-zA-Z0-9]+$', $valid)) {
echo "'$valid' ist gültig.\n";
} else {
echo "'$valid' ist ungültig.\n";
}
if (mb_ereg_match('^[a-zA-Z0-9]+$', $invalid)) {
echo "'$invalid' ist gültig.\n";
} else {
echo "'$invalid' ist ungültig.\n";
}
Verwendung von Options-Parameter (Groß-/Kleinschreibung ignorieren)
<?php
mb_regex_encoding('UTF-8');
$string = 'Hallo Welt';
// Ohne Option: Unterschied bei Groß-/Kleinschreibung
var_dump(mb_ereg_match('hallo welt', $string)); // false
// Mit Option 'i': Groß-/Kleinschreibung wird ignoriert
var_dump(mb_ereg_match('hallo welt', $string, 'i')); // true
// Wichtig · Fallstricke
Verankerung am Ende: mb_ereg_match() verankert das Muster implizit am Anfang des Strings (wie ^), jedoch nicht am Ende. Um sicherzustellen, dass der gesamte String geprüft wird, sollte $ am Ende des Musters stehen.
Kodierung: Die Funktion verwendet die mit mb_regex_encoding() gesetzte Kodierung. Stimmt die Kodierung nicht mit dem tatsächlichen String überein, können unerwartete Ergebnisse auftreten. UTF-8 ist der empfohlene Standard.
Deprecation / Alternative: Für neue Projekte wird empfohlen, stattdessen PCRE-Funktionen wie preg_match() mit dem u-Modifier (Unicode-Modus) zu verwenden, da diese breiter unterstützt und aktiver gepflegt werden. mb_ereg_match() gilt in manchen Kontexten als veraltet.