Bu aralar regex ile devam ediyorum. bugun oracleda ihtiyacım oldu düzenli ifadelere kullanırken aklıma geldi bloguma da eklim dedim.

Oracle Regex Fonksiyonları : 

Fonksiyon Açıklama
REGEXP_LIKE LIKE gibi çalışır ama katar tanımlamanıza olanak sağlar.
REGEXP_INSTR Katara uyan ilk eşleşmenin ilk karakterinin indisi olarak döner.
REGEXP_REPLACE Klasik Regexp replace işi yapar.
REGEXP_SUBSTR Katara eşleşen metin olarak döner.

 Örnekler :

REGEXP_LIKE :

0
SELECT *FROM HASTALAR WHERE  REGEXP_LIKE(HASTA_ADI,'([A-Z]+)','c');

ilk parametremiz arama yapacağımız alan ya da metnin kendisi, ikincisi katar görüntüsü üçüncü parametremiz de regex ayarları oluyor.

Bu sorgunun sonucunda bize sadece büyük harflerden oluşmuş isimler gelir.

Regex Ayarları: 

Fonksiyon Açıklama
c Büyük küçük harf duyarlı eşleşme (varsayılan)
i Büyük küçük harfe duyarsız eşleşme
n “match-any-character” ayarını açar. (sadece acıkken nokta satır sonu ile de eşleşir)
m multiline ayarı (:

REGEXP_INSTR:

 

0
SELECT REGEXP_INSTR('TUFAN BARIS YILDIRIM 123','([0-9]+)') FROM DUAL

sorgu sonucunda katara ilk eşleşen kısım “123″ olacağından ilk karakterinin yani ” 1″ in indisi  yani 25 sonucunu alırız

REGEXP_SUBSTR

 

0
SELECT REGEXP_SUBSTR('TUFAN BARIS YILDIRIM 123','([0-9]+)') FROM DUAL

sorgu sonucunda katara ilk eşleşen kısım “123″ olacağından bize 123 olarak döner. ilk eşleşmeden sonrakileri almak istiyorsak regexp_replace kullanrız.

REGEXP_REPLACE

 

0
SELECT REGEXP_REPLACE('TUFAN BARIS YILDIRIM 123','([A-Z]+)([\s]+)([0-9]+)','rakamlardan onceki son kelime : \1') FROM DUAL

sorguda ilk önce katarı  inceleyelim  3 gruptan oluşuyor ilk grubumuz büyük harf(ler) ikincisi boşluk(lar) üçüncü grubumuz rakam(lar) replace işleminde kullandığımız \1  eşleşen grubun indisin belirtir bulduğumuz sonucu ilk grup ile değiştirip cıktı olark alıyoruz.  eşleşen grup  “YILDIRIM 123″  olur  replace işleminde  ilk grubu yerine yazarsak bize
“rakamlardan önceki son kelime : YILDIRIM” diye döner.

bi dahaki regex ya da oracle yazımızda görüşürz inş  iyi çalışmalar..

Leave a Reply

(required)

(required)


9 − six =

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

© 2012 Tufan Suffusion theme by Sayontan Sinha