regexp_replace işlevi

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

str içindeki regexp ile eşleşen tüm alt dizeleri rep ile değiştirir.

Söz dizimi

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

Tartışmalar

  • str: Eşleştirilecek bir STRING ifadesi.
  • regexp STRING: Eşleşen desene sahip bir ifade.
  • rep: Değiştirme ifadesi olan bir STRING dizesi.
  • position: Eşleştirmenin nereden başlayacağını belirten, 0'dan büyük isteğe bağlı tam sayı sabit değeri. Varsayılan değer 1'dir.

İadeler

Bir STRING.

Dize normal regexp bir ifade olmalıdır. Desteklenen söz dizimi için bkz. Normal ifadeler .

Değişmez değerleri kullanırken kaçış karakterinin ön işlenmesini önlemek için raw-literal (r ön ek) kullanın.

Arama şu konumda başlar: position. Varsayılan değer, başlangıcını işaretleyen 1'dir str. Eğer position karakter uzunluğunu str aşarsa, sonuç str olur.

Yaygın hata koşulları

Örnekler

Her eşleşmeyi sabit metinle değiştirme

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

Maske basamakları

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

Yakalama gruplarını kullanarak parçaları yeniden sıralama

Değiştirme dizesinde, bir yakalama grubuna ($1, $2) başvurmak için ardından grup numarasını kullanın$.

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

Yinelenen boşluğu daraltma

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

Geçersiz regex deseni

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