5.8 Düzenli ifade fonksiyonları

<< İçindekileri Görüntülemek İçin Tıklayın >>

Yer:  Teknik Kılavuzlar > IVEDI SQL Kullanıcı Kılavuzu > 5. Operatörler ve yerleşik fonksiyonlar >

5.8 Düzenli ifade fonksiyonları

İki ayrı aile vardır ve eşanlamlı değildir: SQL:2016 F844 ailesi XQuery kalıpları kullanır ve konumları karakter cinsinden verir; PostgreSQL uyumlu aile POSIX/ARE kalıpları ve PostgreSQL bayrak harfleri (i c s n m p w x q g) kullanır.

5.8.1 SQL:2016 ailesi

İmza
OCCURRENCES_REGEX(<kalıp> [FLAG <bayraklar>] IN <s> [FROM <başlangıç>])
POSITION_REGEX([START|AFTER] <kalıp> [FLAG <b>] IN <s> [FROM <p>] [OCCURRENCE <n>] [GROUP <g>])
SUBSTRING_REGEX(<kalıp> [FLAG <b>] IN <s> [FROM <p>] [OCCURRENCE <n>] [GROUP <g>])
TRANSLATE_REGEX(<kalıp> [FLAG <b>] IN <s> [WITH <yerine>] [FROM <p>] [OCCURRENCE <n>])

GROUP 0 tüm eşleşme demektir; bulunamazsa POSITION_REGEX 0, SUBSTRING_REGEX NULL döndürür. POSITION_REGEX'te START eşleşmenin başını, AFTER eşleşmeden hemen sonraki konumu verir. TRANSLATE_REGEX'te OCCURRENCE 0 (öndeğer) standardın ALL'una karşılık gelir; WITH yazılmazsa eşleşen parça silinir; yerine koyma kalıbı XQuery biçimindedir ($1…$N grup, \$ ve \\ düz karakter). USING birim yan tümcesi yoktur; konumlar her zaman karakter sayılır.

5.8.2 PostgreSQL uyumlu aile

İmza
REGEXP_COUNT(s, kalıp [, başlangıç] [, bayraklar])
REGEXP_INSTR(s, kalıp [, başlangıç] [, n] [, endoption] [, bayraklar] [, altifade])
REGEXP_LIKE(s, kalıp [, bayraklar])
REGEXP_REPLACE(s, kalıp, yerine [, bayraklar])
REGEXP_REPLACE(s, kalıp, yerine, başlangıç [, n] [, bayraklar])
REGEXP_SUBSTR(s, kalıp [, başlangıç] [, n] [, bayraklar] [, altifade])

REGEXP_REPLACE'in başlangıçlı biçiminde n yazılmazsa yalnızca ilk eşleşme değiştirilir (g bayrağı yoksa); açıkça yazılan n = 0 bütün eşleşmeler demektir.

Sınır

Dizi döndüren düzenli ifade fonksiyonları yoktur: REGEXP_MATCHES, REGEXP_SPLIT_TO_ARRAY, REGEXP_SPLIT_TO_TABLE bildirilmemiştir.