regexp_replace fungsi

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

Mengganti semua string sub str yang cocok regexp dengan rep.

Sintaks

regexp_replace(str, regexp, rep [, position] )

Argumen

  • str: Ekspresi STRING yang akan dicocokkan.
  • regexp: Ekspresi STRING dengan pola yang cocok.
  • rep: Ekspresi STRING yang merupakan string pengganti.
  • position: Sebuah literal numerik integral opsional yang lebih besar dari 0, yang menentukan titik awal pencocokan. Defaultnya adalah 1.

Pengembalian

STRING.

String regexp harus berupa ekspresi reguler. Lihat Ekspresi reguler untuk sintaks yang didukung.

Saat menggunakan literal, gunakan raw-literal (r awalan) untuk menghindari pemrosesan awal karakter escape.

Pencarian dimulai di position. Defaultnya adalah 1, yang menandai awal dari str. Jika position melebihi panjang karakter str, hasilnya adalah str.

Kondisi kesalahan umum

Contoh

Ganti setiap kecocokan dengan teks tetap

> SELECT regexp_replace('100-200', r'(\d+)', 'num');
 num-num

Menutupi digit

> SELECT regexp_replace('SSN 123-45-6789', r'\d', '#');
 SSN ###-##-####

Menyusun ulang bagian menggunakan grup pengambilan

Dalam string pengganti, gunakan $ diikuti dengan nomor grup untuk merujuk ke grup pengambilan ($1, $2).

> SELECT regexp_replace('2024-03-15', r'(\d{4})-(\d{2})-(\d{2})', '$3/$2/$1');
 15/03/2024

Ciutkan spasi kosong berulang

> SELECT regexp_replace('too    many   spaces', r'\s+', ' ');
 too many spaces

Pola regex tidak valid

> SELECT regexp_replace('abc', '[invalid', 'x');
  Error: INVALID_PARAMETER_VALUE.PATTERN