Ce face REGEXP_REPLACE()
REGEXP_REPLACE() este varianta mai puternică a lui REPLACE(): înlocuiește tot ce se potrivește cu tiparul. Implicit înlocuiește toate aparițiile; cu parametrul aparitie poți înlocui doar a N-a apariție.
În textul de înlocuire poți folosi grupurile din tipar: $1, $2 etc.
Parametri
| Parametru | Descriere |
|---|---|
expresie |
Textul original. |
tipar |
Expresia regulată. |
inlocuire |
Textul pus în loc (poate conține $1, $2…). |
pozitie |
Opțional. De unde începe căutarea (implicit 1). |
aparitie |
Opțional. Care apariție se înlocuiește (implicit 0 = toate). |
optiuni |
Opțional. Ca la REGEXP_LIKE(). |
Ce returnează
Textul nou.
Exemple
Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.
CREATE TABLE clienti (
id INT PRIMARY KEY,
nume VARCHAR(50),
oras VARCHAR(30),
email VARCHAR(100),
telefon VARCHAR(20)
);
INSERT INTO clienti VALUES
(1, 'Ana Pop', 'Iași', 'ana.pop@exemplu.ro', '0722-123-456'),
(2, 'bogdan ionescu', 'Cluj-Napoca', 'bogdan@firma.ro', '0744 555 101'),
(3, 'Cristina Marin', 'Brașov', 'cristina@exemplu.ro', '0733.222.909'),
(4, 'Dan Stoica', 'Timișoara', NULL, '0755123123');
Exemplul 1: Numere de telefon doar cu cifre
SELECT telefon, REGEXP_REPLACE(telefon, '[^0-9]', '') AS doar_cifre
FROM clienti
ORDER BY id;
Rezultat
+--------------+------------+
| telefon | doar_cifre |
+--------------+------------+
| 0722-123-456 | 0722123456 |
| 0744 555 101 | 0744555101 |
| 0733.222.909 | 0733222909 |
| 0755123123 | 0755123123 |
+--------------+------------+
Exemplul 2: Reordonarea cu grupuri
SELECT REGEXP_REPLACE('19.10.2026', '([0-9]{2})\\.([0-9]{2})\\.([0-9]{4})', '$3-$2-$1') AS data_iso;
Rezultat
+------------+
| data_iso |
+------------+
| 2026-10-19 |
+------------+
Greșeli frecvente
- Uiți că în SQL backslash-ul trebuie dublat: punctul literal se scrie
'\\.'în tipar, nu'\.'.
Comenzi înrudite
REPLACE(): Înlocuiește toate aparițiile unui text cu alt text.REGEXP_SUBSTR(): Returnează bucata de text care se potrivește cu o expresie regulată.REGEXP / RLIKE: Verifică dacă un text se potrivește cu o expresie regulată; mai puternic decât LIKE.