Ce face Flag-uri RegEx: g, i, m, s, u, x
Flag-urile (modificatorii) se plasează după delimitatorul de închidere al expresiei regulare (de exemplu / șablon /gimu) și modifică regulile generale de funcționare ale motorului RegEx.
Cele mai importante 6 flag-uri sunt: g (global — găsește toate aparițiile, nu doar prima), i (case-insensitive — ignoră diferența dintre litere mici și mari), m (multiline — ^ și $ potrivesc pe fiecare rând), s (dotAll / singleline — punctul . potrivește și \n), u (unicode — esențial pentru diacritice și emoji) și x (extended în PHP/Python — permite comentarii și spații de formatare în RegEx).
Variante și sintaxă asociată
| Expresie / Simbol | Descriere |
|---|---|
g (global) |
Caută toate potrivirile din șir (în JS /pattern/g; în PHP se folosește funcția preg_match_all). |
i (insensitive) |
Ignoră diferența dintre litere mici și MARI (a potrivește atât a, cât și A). |
m (multiline) |
Ancorele ^ și $ potrivesc începutul și sfârșitul fiecărei linii (după/înainte de \n). |
s (dotAll / singleline) |
Face ca metacaracterul punct (.) să potrivească inclusiv caracterul newline (\n). |
u (unicode) |
Tratează șirul ca UTF-8 și activează proprietățile Unicode \p{L} (obligatoriu pt. română). |
x (extended / verbose) |
În PHP și Python (re.VERBOSE): ignoră spațiile albe și permite comentarii cu # în expresie. |
Exemple
Exemplul 1: Combinarea flag-urilor i (case-insensitive) și u (Unicode) în română
Pentru ca i să știe că Ș mare este echivalent cu ș mic, trebuie combinat cu flag-ul u.
// PHP:
$text = "Știință, știință și ȘTIINȚĂ";
preg_match_all('/știință/iu', $text, $m);
Potriviri găsite (Matches)
$m[0] => ["Știință", "știință", "ȘTIINȚĂ"] (toate cele 3 variante sunt găsite)
Exemplul 2: Scrierea unei expresii complexe comentate cu flag-ul x în PHP
Cu flag-ul x, putem scrie expresia pe mai multe rânduri și adăuga comentarii explicative cu #.
// PHP:
$pattern = '/
^ # Începutul șirului
(?<an>\d{4}) # Anul (4 cifre)
- # Separator cratimă
(?<luna>0[1-9]|1[0-2]) # Luna (01-12)
$ # Sfârșitul șirului
/x';
preg_match($pattern, '2026-10', $m);
Potriviri găsite (Matches)
$m['an'] => "2026"
$m['luna'] => "10"
Greșeli frecvente
- Încercarea de a pune flag-ul
/gîn PHP (preg_match('/abc/g', ...)): în PHP nu există flag-ulgși va genera eroarea Unknown modifier ‘g’! În PHP, căutarea globală se face apelând funcțiapreg_match_all(). - Folosirea flag-ului
xatunci când expresia conține spații literale sau simbolul#(de exemplu pentru culori hex#FF0000): cu/xactiv, spațiile sunt ignorate, iar#începe un comentariu! Cu/x, scrie spațiile ca\ssau\și#ca\#.
Simboluri și rețete înrudite
\p{L} și diacriticele românești (ăîâșț): Potrivește corect toate literele Unicode și diacriticele românești (ă, î, â, ș, ț) folosind proprietăți Unicode sau clase explicite.^ și $ (început și sfârșit de șir / linie): Ancorează potrivirea la începutul (^) și/sau la sfârșitul ($) șirului de text sau al fiecărui rând.. (orice caracter): Potrivește orice caracter individual, cu excepția caracterului de linie nouă (newline).RegEx în JavaScript, PHP (preg_match) și Python (re): Ghid comparativ pentru apelarea expresiilor regulare în cele mai populare 3 limbaje: testare, extragere, înlocuire și split.