regexp_substr 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 11.3 LTS ve üzeri

ile eşleşen strilk alt dizeyi regexp döndürür.

Söz dizimi

regexp_substr( str, regexp )

Bağımsız değişkenler

  • str STRING: Eşleştirilecek ifade.
  • regexp STRING: Eşleşen desene sahip bir ifade.

Döndürülenler

Bir STRING.

regexp_substr tek bir yakalama grubu değil, eşleşen alt dizenin regexp tamamını döndürür. Belirli bir yakalama grubunu döndürmek için regexp_extract kullanın. Yalnızca ilk eşleşme dikkate alınır. Her eşleşmeyi döndürmek için regexp_extract_all kullanın.

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.

veya ise veya desen bulunamazsastr, sonuç olurNULL.NULLregexp

Yaygın hata koşulları

Örnekler

Çeşitli alternatiflerden birini eşleştirme

Desen Ste(v\|ph)en veya StevenStephenile eşleşir. işlevi ilk eşleşmeyi döndürür.

> SELECT regexp_substr('Steven Jones and Stephen Smith are the best players', r'Ste(v|ph)en');
 Steven

Dizeden ilk sayıyı ayıklama

Ters eğik çizgiyi ikiye katlamadan regex altyapısına geçirilecek şekilde ham bir değişmez değer \d kullanın.

> SELECT regexp_substr('item 42 costs $19', r'\d+');
 42

Büyük/küçük harfe duyarsız eşleştirme

Büyük/küçük harf yoksaymak (?i) için satır içi bayrağını kullanın.

> SELECT regexp_substr('Error: disk full', r'(?i)error');
 Error

E-posta adresini ayıklama

> SELECT regexp_substr('Contact alice@example.com for details', r'\w+@\w+\.\w+');
 alice@example.com

İlk hashtag'i ayıklama

regexp_substr yalnızca ilk eşleşmeyi döndürür. Her eşleşmeyi döndürmek için regexp_extract_all kullanın.

> SELECT regexp_substr('Posts tagged #data #ai #sql', r'#\w+');
 #data

Eşleşme döndürülüyor NULL

Boş bir dize döndüren regexp_extract aksine, regexp_substr desen bulunamadığında döndürür NULL .

> SELECT regexp_substr('Mary had a little lamb', r'Ste(v|ph)en');
 NULL

NULL giriş dönüşleri NULL

> SELECT regexp_substr(NULL, r'Ste(v|ph)en');
 NULL

> SELECT regexp_substr('Mary had a little lamb', NULL);
 NULL

Geçersiz regex deseni

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