PostgreSQL Regex Örneğiyle SUBSTRING() İşlevi

⚡ Akıllı Özet

PostgreSQL ALT DİZİ extracBu fonksiyon, isteğe bağlı bir başlangıç ​​konumu ve uzunluğu kullanarak bir dizenin bir bölümünü döndürür ve ayrıca metinleri POSIX düzenli ifadeleriyle eşleştirerek sayılar veya kodlar gibi kalıpları çıkarır.

  • ???? Sözdizimi: substring( string [from start] [for length] ) kaynak dizenin bir bölümünü döndürür.
  • 1️⃣ Pozisyonlar: Karakter konumları 1'den başlar ve uzunluk belirtilmediğinde dizenin sonuna kadar okunur.
  • 🔎 Düzenli ifade: ALT DİZİ (kalıptan gelen dize) örnektracPOSIX düzenli ifadesiyle eşleşen ilk metni gösterir.
  • 🧮 Grouping: Desen içindeki parantez içindeki grup, yalnızca eşleşmenin yakalanan kısmını döndürür.
  • 🖥️ pgAdmin: pgAdmin sorgu düzenleyicisinde her alt dize sorgusu aynı şekilde çalışır.
  • 🤖 Yapay Zeka Yardımı: Yapay zekâ asistanları, doğru alt dize çıkarımı için düzenli ifade kalıpları oluşturur ve açıklar.tracyon.

PostgreSQL Regex ile SUBSTRING Fonksiyonu

Nedir? PostgreSQL Alt dize?

MKS PostgreSQL `substring` fonksiyonu, size şu konularda yardımcı olur:tract ve bir dizenin bir bölümünü döndürür. Tüm dizeyi döndürmek yerine, yalnızca bir bölümünü döndürür; bu da kodları kırpmak ve sabit genişlikli alanları okumak için kullanışlıdır.

Sözdizimi

MKS PostgreSQL alt dize fonksiyonu aşağıdaki sözdizimini alır:

substring( string [from starting_position] [for length] )

Parametreler

Alt dize fonksiyonu ile aşağıdaki parametreler kullanılır:

dizi Veri türü varchar, char, string vb. olan kaynak dize.
başlangıç ​​pozisyonu İsteğe bağlı bir parametre. Ex'in bulunduğu yeri belirtir.tracDizenin oluşturulması başlayacaktır. Bu parametreyi atlarsanız, örnektracİfade, dizenin ilk karakteri olan 1. pozisyondan başlar.
uzunluk İsteğe bağlı bir parametre. Çıkarılacak karakter sayısını belirtir.tracBu parametreyi atlarsanız, fonksiyon şu şekilde çalışır:tracBaşlangıç ​​konumundan dizenin sonuna kadar olan kısım.

Örnekler

Bu örnekte, şunu göstermek istiyoruz:trackelimenin ilk 4 karakteri Guru99:

SELECT substring('Guru99' for 4);

Komut aşağıdakini döndürecektir:

PostgreSQL Alt dize

Başlangıç ​​pozisyonunu belirtmedik, bu nedenle örnektracAlt dizenin başlangıcı 1. pozisyondan itibaren dört karakterden oluşmaktadır.tracYukarıdaki sonucu döndürmek üzere ayarlanmıştır.

Aşağıdaki örnek, başlangıç ​​pozisyonunun nasıl belirleneceğini göstermektedir:

SELECT substring('Guru99' from 1 for 4);

Komut aşağıdakini döndürecektir:

PostgreSQL Alt dize

Eski çalışanın şu şekilde olduğunu belirttik:tracAlt dizenin başlangıcı 1. pozisyondan başlamalı ve 4 karakter çıkarılmalıdır.tracted.

Hadi örnek verelim.tract 99 diziden Guru99:

SELECT substring('Guru99' from 5);

Komut aşağıdakini döndürecektir:

PostgreSQL Alt dize

Başlangıç ​​pozisyonunu 5 olarak belirledik. Çünkü çıkarılacak karakter sayısı...tracTed belirtilmemişti, eskitraction, ipin sonuna kadar uzandı.

İşte başka bir örnek:

SELECT substring('Guru99' from 5 for 2);

Komut aşağıdakini döndürecektir:

PostgreSQL Alt dize

Eski sevgilimizle başladık.trac5. pozisyondaki tion ve 2 karakter çıkarıldı.tracted.

Aşağıda verilen Kitap tablosunu düşünün:

PostgreSQL Alt dize Kitap tablosu

Her kitabın adını kabaca öğrenmek istiyoruz. Örneğin, şu yöntemlerden birini kullanabiliriz:tracTablonun ad sütunundaki ilk 15 karakteri kullanın:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Komut aşağıdakini döndürecektir:

PostgreSQL Alt dize sonucu

Artık her kitabın adı hakkında kabaca bir fikrimiz var.

Alt Dizeleri SQL Normal İfadesiyle Eşleştirme

In PostgreSQL, çıkarabilirsiniztracBelirtilen POSIX düzenli ifadesiyle eşleşen bir alt dize. Bu durumda, `substring` işlevi aşağıdaki sözdizimini kullanır:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Yukarıdaki parametrelerin açıklaması aşağıdadır. Dize, kaynak dizedir ve veri tipi `varchar`, `char`, `string` vb. olabilir. `matching_pattern` ise dize içinde arama yapmak için kullanılan kalıptır.

Örnekler

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Komut aşağıdakini döndürecektir:

Alt Dizeleri SQL Normal İfadesiyle Eşleştirme

Giriş dizemiz "Yaşınız 22"dir. Desen içinde sayısal bir desen arıyoruz; bulunduğunda, alt dize işlevi devreye giriyor.tracSadece iki karakter.

pgAdmin Kullanarak Alt Dizeleri Eşleştirme Nasıl Yapılır?

Şimdi bu işlemlerin pgAdmin kullanılarak nasıl gerçekleştirildiğine bakalım. Veritabanı gerektirmeyen sorgular, sorgu düzenleyici penceresinden doğrudan çalıştırılabilir. Sadece şunları yapın:

) 1 Adım pgAdmin hesabınıza giriş yapın.

) 2 Adım pgAdmin'de Sorgu Aracı simgesine tıklayın.

pgAdmin'i Kullanarak Alt Dizeleri Eşleştirme

Sorgu düzenleyici penceresi açılacaktır.

) 3 Adım Aşağıdaki sorguyu düzenleyici penceresine yazın.

SELECT substring('Guru99' for 4);

) 4 Adım Sorguyu yürütmek için Yürüt simgesine tıklayın.

pgAdmin'i Kullanarak Alt Dizeleri Eşleştirme

) 5 Adım Sorgu yürütme işlemi tamamlandı. Aşağıdakileri döndürmesi gerekiyor:

pgAdmin'i Kullanarak Alt Dizeleri Eşleştirme

Örnek 2:

SELECT substring('Guru99' from 1 for 4);

Aşağıdaki sonucu döndürmesi gerekir:

pgAdmin'i Kullanarak Alt Dizeleri Eşleştirme

İşte bir sonraki örnek:

SELECT substring('Guru99' from 5);

Aşağıdaki sonucu döndürmesi gerekir:

pgAdmin'i Kullanarak Alt Dizeleri Eşleştirme

Örnek 3:

SELECT substring('Guru99' from 5 for 2);

Aşağıdaki sonucu döndürmesi gerekir:

pgAdmin'i Kullanarak Alt Dizeleri Eşleştirme

Şimdi örneği Demo veritabanının Kitap tablosunu kullanarak çalıştıralım:

) 1 Adım pgAdmin hesabınıza giriş yapın.

) 2 Adım Soldaki gezinme çubuğundan Veritabanları'na, ardından Demo'ya tıklayın.

pgAdmin'i Kullanarak Alt Dizeleri Eşleştirme

) 3 Adım Sorgu düzenleyicisine sorguyu yazın:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

) 4 Adım Yürüt düğmesine tıklayın.

pgAdmin'i Kullanarak Alt Dizeleri Eşleştirme

Aşağıdaki sonucu döndürmesi gerekir:

PostgreSQL Alt dize sonucu

Artık her kitabın adı hakkında temel bir fikrimiz var.

Alt Dizeleri SQL Normal İfadesiyle Eşleştirme

Aynısını pgAdmin'de gerçekleştirmek için aşağıdakileri yapın:

) 1 Adım pgAdmin hesabınıza giriş yapın.

) 2 Adım Sorgu Aracı simgesini tıklayın.

Alt Dizeleri SQL Normal İfadesiyle Eşleştirme

Sorgu düzenleyici penceresi açılacaktır.

) 3 Adım Aşağıdaki sorguyu düzenleyici penceresine yazın.

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

) 4 Adım Sorguyu yürütmek için Yürüt simgesine tıklayın.

Alt Dizeleri SQL Normal İfadesiyle Eşleştirme

Aşağıdaki sonucu döndürmesi gerekir:

Alt Dizeleri SQL Normal İfadesiyle Eşleştirme

Bu Eğitimde kullanılan Veritabanını İndirin

SSS

SUBSTR, SUBSTRING'in daha kısa bir takma adıdır ve bir dizenin bir bölümünü döndürür. SUBSTRING ayrıca SQL standardı FROM ve FOR anahtar kelimelerini ve POSIX düzenli ifadelerini desteklerken, SUBSTR yalnızca virgülle ayrılmış konum ve uzunluk argümanlarını kabul eder.

PostgreSQL SUBSTRING, 1 tabanlıdır, bu nedenle ilk karakter 0 değil, 1 konumunda yer alır. Başlangıç ​​konumu olarak 1 geçirilmesi, dizenin ilk karakterinden itibaren olan kısmını döndürür.

POSIX kalıbı hiçbir şeyle eşleşmediğinde, SUBSTRING boş bir dize yerine NULL döndürür. Sonucu IS NULL ile test etmek, beklenen kalıbın bulunmadığı satırları ele almanızı sağlar.

Karakterden sonra gelenleri yakalayan bir normal ifade kullanın. Örneğin, SUBSTRING(email FROM '@(.*)') ifadesi, @ işaretinden sonraki her şeyi döndürerek her e-posta adresinin etki alanı bölümünü verir.

İlk eşleşen metni basit bir değer olarak almak istediğinizde SUBSTRING'i kullanın. Tüm eşleşmeleri veya birden fazla yakalama grubunu dizi olarak almak istediğinizde regexp_matches()'i seçin, çünkü SUBSTRING yalnızca ilk eşleşmeyi döndürür.

GitHub Copilot gibi yapay zeka asistanları, sade İngilizce bir açıklamayı POSIX kalıbına dönüştürür, her bir belirtecin neyle eşleştiğini açıklar ve test dizeleri önerir; bu da alt dize örnekleri oluştururken deneme yanılma yöntemini azaltır.traction sorguları.

Evet. İstediğiniz metin bölümünü tanımlayın ve yapay zeka asistanı, doğru pozisyonlar veya düzenli ifade içeren bir SUBSTRING çağrısı taslağı oluşturur; bunu pgAdmin içinde çalıştırabilir ve iyileştirebilirsiniz.

Evet, POSIX SUBSTRING eşleştirmesi varsayılan olarak büyük/küçük harf duyarlıdır. Büyük/küçük harf ayrımı gözetmeksizin eşleştirmek için, her iki girdiyi de küçük harfe çevirin, örneğin SUBSTRING(lower(name) FROM lower(pattern)), böylece büyük ve küçük harfler aynı şekilde ele alınır.

Bu yazıyı şu şekilde özetleyin: