String
DuckDB
REGEXP_REPLACE
Mengganti bagian string yang cocok dengan regular expression. Lebih powerful dari REPLACE untuk pattern matching kompleks.
Tipe hasil:
VARCHARDiperbarui: 6 Jan 2026Syntax
SQL
REGEXP_REPLACE(string, pattern, replacement [, flags])Parameter
stringVARCHARwajib
String yang akan diproses
patternVARCHARwajib
Regular expression pattern untuk dicari
replacementVARCHARwajib
String pengganti. Bisa menggunakan capture groups ($1, $2)
flagsVARCHARopsional
Flags: 'g' global, 'i' case-insensitive, 'm' multiline
Contoh Penggunaan
Menghapus Semua Non-Digit
SQL
1 SELECT 2 phone_raw, 3 REGEXP_REPLACE(phone_raw, '[^0-9]', '', 'g') as phone_clean 4 FROM contacts;
Membersihkan nomor telepon dari karakter non-angka.
Hasil
| phone_raw | phone_clean |
|---|---|
| +62 812-3456-7890 | 6281234567890 |
| (021) 555-1234 | 0215551234 |
| 08.123.456.789 | 08123456789 |
Format Ulang Tanggal
SQL
1 SELECT 2 date_raw, 3 REGEXP_REPLACE(date_raw, '(\d{2})/(\d{2})/(\d{4})', '$3-$2-$1') as date_iso 4 FROM ( 5 SELECT '15/06/2024' as date_raw UNION ALL 6 SELECT '01/12/2023' 7 );
Mengubah format DD/MM/YYYY ke YYYY-MM-DD menggunakan capture groups.
Hasil
| date_raw | date_iso |
|---|---|
| 15/06/2024 | 2024-06-15 |
| 01/12/2023 | 2023-12-01 |
Mask Sensitive Data
SQL
1 SELECT 2 email, 3 REGEXP_REPLACE(email, '(.{2}).*(@.*)', '$1***$2') as masked_email 4 FROM users;
Menyembunyikan sebagian email untuk privasi.
Hasil
| masked_email | |
|---|---|
| budi.santoso@gmail.com | bu***@gmail.com |
| ani.lestari@yahoo.com | an***@yahoo.com |