Regex ile Substring

201307020001282007201506112.2.1.9QkZFQkZCR

Yukarıdaki metinde koyu olan sürüm bilgisini PL/SQL’de almak istiyoruz. Kurallar şu şekilde;

  • İlk noktadan önce 1 rakam olur.
  • Diğer noktalardan önce en az 1 rakam olabilir.
  • Son noktadan sonra en az 1 rakam olabilir.
  • Toplamda 3 nokta olabilir.

Sürüm bilgisinin yeri değişken olacağı için işlemi regex ile yapmak istiyoruz. Bunun için aşağıdaki fonksiyonu kullanabiliriz.

REGEXP_SUBSTR('201307020001282007201506112.2.1.9QkZFQkZCR', '\d\.\d+\.\d+\.\d+')

Aynı zamanda istediğimizi metini almak ve istediğimiz formatta göstermek istiyorsak REGEXP_REPLACE kullanabiliriz.

Phone=”1234567890

Yukarıdaki metinden telefon numarasını alıp +90 xxx xxx xx xx formatında göstermek istiyoruz. Bunun için aşağıdaki fonksiyonu kullanabiliriz.

REGEXP_REPLACE('Phone="1234567890"', '^Phone="(.{3})(.{3})(.{2})(.{2})"$', '+90 \1 \2 \3 \4')