\d și \D (cifre) în Expresii Regulare (RegEx)

Clase de caractere PCRE / ECMAScript / Python

Scurtătură pentru orice cifră zecimală de la 0 la 9 (\d) sau orice caracter care nu este cifră (\D).

Tipar RegEx
d   |   d+   |   d{4}   |   D

Ce face \d și \D (cifre)

Secvența \d (de la digit) potrivește o singură cifră din intervalul 0-9, fiind echivalentă cu setul [0-9]. Este una dintre cele mai folosite scurtături în expresiile regulare pentru extragerea numerelor, anilor, prețurilor, codurilor poștale sau CNP-urilor.

Varianta cu literă mare, \D (non-digit), este exact opusul: potrivește orice caracter care nu este o cifră (echivalent cu [^0-9]). În RegEx, convenția literă mică = clasă pozitivă, literă mare = negația clasei se aplică pentru \d/\D, \w/\W, \s/\S și \b/\B.

Variante și sintaxă asociată

Expresie / Simbol Descriere
\d O singură cifră (echivalent cu [0-9]).
\D Orice caracter care NU este cifră: litere, spații, punctuație (echivalent cu [^0-9]).
\d+ Un număr întreg pozitiv format din una sau mai multe cifre consecutive.
\d{4} Exact 4 cifre (util pentru ani, ex. 2026, sau ultimele 4 cifre ale unui card).
\d+(?:[.,]\d+)? Număr întreg sau zecimal cu virgulă ori punct (ex. 120, 49.99, 19,50).

Exemple

Exemplul 1: Extragerea tuturor numerelor dintr-o propoziție

Combinăm \d cu cuantificatorul + pentru a extrage secvențe complete de cifre.

Expresie: /\d+/g
Text:     "Comanda #4821 conține 3 produse în valoare de 259 RON."

Potriviri găsite (Matches)

Match 1: "4821"
Match 2: "3"
Match 3: "259"

Exemplul 2: Curățarea unui număr de telefon cu \D

Înlocuind tot ce potrivește \D+ cu șirul vid, păstrăm exclusiv cifrele dintr-un număr formatat.

// JavaScript:
const raw = "+40 (722) 123-456";
const doarCifre = raw.replace(/\D+/g, "");

Potriviri găsite (Matches)

"40722123456"

Greșeli frecvente

  • Folosirea lui \d singur când de fapt vrei un număr întreg cu mai multe cifre (\d găsește fiecare cifră separat; folosește \d+ pentru numărul întreg).
  • În PHP sau Python cu flag-ul Unicode activat (/u), \d poate potrivi și cifre din alte alfabete (ex. cifre arabe orientale ٠١٢٣). Dacă vrei strict cifre ASCII, folosește [0-9].

Simboluri și rețete înrudite