Ce face mb_ereg / mb_eregi
mb_ereg folosește motorul de expresii regulate Oniguruma, care lucrează direct pe caractere multibyte. Șablonul se scrie fără delimitatori (fără /.../), iar grupurile găsite sunt puse în $matches.
mb_eregi face același lucru fără să țină cont de majuscule, inclusiv la diacritice. În majoritatea proiectelor se folosește preg_match cu modificatorul u, care oferă același lucru și este mai cunoscut.
Parametri
| Parametru | Descriere |
|---|---|
$pattern |
Expresia regulată, fără delimitatori. |
$string |
Textul verificat. |
$matches |
Opțional. Variabilă în care primești potrivirea și grupurile. |
Ce returnează
true dacă există potrivire, altfel false.
Exemple
Exemplul 1: Extragerea unui număr de telefon
<?php
if (mb_ereg('(\d{4})-(\d{6})', "Telefon Iași: 0232-210500", $m)) {
echo "Prefix: " . $m[1] . ", număr: " . $m[2];
}
Rezultat
Prefix: 0232, număr: 210500
Exemplul 2: Fără majuscule, cu diacritice
<?php
var_dump(mb_ereg('școală', "ȘCOALĂ GIMNAZIALĂ"));
var_dump(mb_eregi('școală', "ȘCOALĂ GIMNAZIALĂ"));
Rezultat
bool(false)
bool(true)
Greșeli frecvente
- Copiezi un șablon de la
preg_matchcu delimitatori:mb_ereg('/\d+/', ...)caută literal caracterul/. Scoate delimitatorii.
Comenzi înrudite
preg_match: Verifică dacă un text se potrivește cu o expresie regulată și extrage prima potrivire.mb_ereg_match: Verifică dacă ÎNCEPUTUL unui text se potrivește cu o expresie regulată multibyte.mb_ereg_replace / mb_eregi_replace: Înlocuiește potrivirile unei expresii regulate multibyte cu alt text.