Ce face [abc] și [a-z0-9] (seturi și intervale)
Parantezele drepte [...] definesc un set de caractere (character class): expresia va potrivi un singur caracter din text, cu condiția ca acesta să se regăsească printre opțiunile listate în interiorul parantezelor. De exemplu, gr[ae]y potrivește atât gray, cât și grey.
În interiorul parantezelor drepte poți folosi cratima (-) pentru a defini intervale pe baza codului ASCII/Unicode: [a-z] pentru litere mici, [A-Z] pentru majuscule, [0-9] pentru cifre. Majoritatea metacaracterelor (precum ., +, *, ?, (, )) își pierd sensul special în interiorul [...] și devin caractere literale.
Variante și sintaxă asociată
| Expresie / Simbol | Descriere |
|---|---|
[abc] |
Potrivește un singur caracter: fie a, fie b, fie c. |
[a-z] |
Orice literă mică din alfabetul englez (de la a la z). |
[a-zA-Z0-9] |
Orice literă (mică sau mare) sau cifră (alfanumeric ASCII). |
[0-9a-fA-F] |
O cifră hexazecimală (utilă pentru culori CSS #FF5733 sau adrese MAC). |
[a-zăîâșț] |
Litere mici inclusiv diacriticele românești (necesită flag-ul /u în PCRE/JS). |
[-a-z] sau [a-z-] |
Cratima pusă chiar la început sau la sfârșit (ori escapată \-) este tratată ca minus literal. |
Exemple
Exemplul 1: Validarea unei culori hexazecimale CSS (#RRGGBB)
Folosim intervalul [0-9a-fA-F] repetat de exact 6 ori după simbolul #.
Expresie: /#[0-9a-fA-F]{6}\b/g
Text: "Culori valide: #1a2b3c, #FF9900. Invalide: #12345g, #abc."
Potriviri găsite (Matches)
Match 1: "#1a2b3c"
Match 2: "#FF9900"
Exemplul 2: Potrivirea vocalelor din limba română
Definim un set cu toate vocalele românești și folosim flag-ul i (case-insensitive).
Expresie: /[aeiouăîâ]/gi
Text: "România"
Potriviri găsite (Matches)
Match 1: "o"
Match 2: "â"
Match 3: "i"
Match 4: "a"
Greșeli frecvente
- Confuzia între
[abc](un singur caracter dintrea,bsauc) și(abc)(secvența exactă de 3 caractereabc). De exemplu,[da|nu]NU înseamnă „da sau nu”, ci potrivește o singură literă dintred, a, |, n, u! - Plasarea cratimei la mijloc fără escapare când vrei să potrivești caracterul minus (ex.
[a-z-_]creează un interval accidental întrezși_sau dă eroare). Scrie mereu cratima la final:[a-z_-]sau escapeaz-o:[a-z\-_]. - Scrierea unui interval invalid precum
[A-z], care pe lângă litere include și caracterele ASCII dintreZ(90) șia(97):[ \ ] ^ _ `. Folosește întotdeauna[A-Za-z].
Simboluri și rețete înrudite
[^...] (set negat): Potrivește orice caracter care NU se află în lista sau intervalul dintre parantezele drepte.\d și \D (cifre): Scurtătură pentru orice cifră zecimală de la 0 la 9 (\d) sau orice caracter care nu este cifră (\D).\w și \W (caractere de cuvânt): Potrivește litere, cifre și caracterul underscore [a-zA-Z0-9_] (\w) sau opusul acestora (\W).| (operatorul SAU / alternare): Permite alegerea între două sau mai multe expresii alternative (SAU logic în RegEx).