AltDize
substring
bir metnin bir bölümünü çıkarır. Bu işlev, tutarlı bir biçime sahip metni (veya dize veri türüne sahip herhangi bir değeri) temizlemek için kullanışlıdır.
Örneğin, substring
SKU numaraları, ISO kodları ve standartlaştırılmış e-posta adresleri gibi dizelerde iyi çalışmalıdır.
Sözdizimi | Örnek |
---|---|
substring(metin, konum, uzunluk) | substring("[email protected]", 1, 7) |
Bir başlangıç noktası (konum) ve bir uzunluk (karakter sayısı) verilen metnin bir bölümünü çıkarır. | "user_id" |
Parametreler
- Dizenizdeki ilk karakter 1. konumdadır.
- Alt dizenizin uzunluğu her zaman pozitif bir sayı olmalıdır.
Soldan bir alt dize alma
Görev Kimliği | Ajan |
---|---|
19951113006 | 006 |
20061114007 | 007 |
19640917008 | 008 |
Ajan, şu ifadeye sahip özel bir sütundur:
substring([Görev Kimliği], 9, 3)
Sağdan bir alt dize alma
Konum için bir sayı kullanmak yerine, şu formülü kullanacaksınız
1 + length([sütun]) - sağdan_konum
burada sağdan_konum
, sağdan sola saymak istediğiniz karakter sayısıdır.
Görev Kimliği | Ajan |
---|---|
19951113006 | 006 |
20061114007 | 007 |
19640917008 | 008 |
Burada, Ajan, şu ifadeye sahip özel bir sütundur:
substring([Görev Kimliği], (1 + length([Görev Kimliği]) - 3), 3)
Kabul edilen veri türleri
Veri türü | substring ile çalışır |
---|---|
Dize | ✅ |
Sayı | ❌ |
Zaman damgası | ❌ |
Boolean | ❌ |
JSON | ❌ |
Sınırlamalar
substring
, sabit sayıda karakter sayarak metin çıkarır. Daha karmaşık bir mantığa dayalı olarak metin çıkarmanız gerekiyorsa, regexextract
öğesini deneyin.
Ve yalnızca metninizin etrafındaki fazladan boşluğu temizlemeniz gerekiyorsa, bunun yerine trim
, ltrim
veya rtrim
ifadelerini kullanabilirsiniz.
İlgili işlevler
Bu bölüm, Patrona substring
ifadesiyle aynı şekilde çalışan işlevleri ve formülleri kapsar ve kullanım durumunuz için en iyi seçeneğin nasıl seçileceğine ilişkin notlar içerir.
Diğer araçlar
Regexextract
Daha belirli kurallara göre metin çıkarmanız gerekiyorsa regexextract öğesini kullanın. Örneğin, "00"ın son oluşumunu (ve ondan sonraki her şeyi) bulan bir regex deseniyle aracı kimliğini alabilirsiniz:
regexextract([Görev Kimliği], ".+(00.+)$")
aynı sonucu döndürmelidir
substring([Görev Kimliği], 9, 3)
SQL
not defteri düzenleyicisini kullanarak bir soru çalıştırdığınızda, Patrona grafiksel sorgu ayarlarınızı (filtreler, özetler vb.) bir sorguya dönüştürür ve sonuçlarınızı almak için bu sorguyu veritabanınıza karşı çalıştırır.
örnek verilerimiz bir PostgreSQL veritabanında saklanıyorsa:
SELECT
görev_kimliği,
SUBSTRING(görev_kimliği, 9, 3) AS ajan
FROM
bu_mesaj_kendini_yok_edecek;
Patrona substring
ifadesine eşdeğerdir:
substring([Görev Kimliği], 9, 3)
E-tablolar
örnek verilerimiz, "Görev Kimliği"nin A sütununda olduğu bir e-tabloda bulunuyorsa,
=mid(A2,9,3)
Patrona substring
ifadesiyle aynıdır:
substring([Görev Kimliği], 9, 3)
Python
örnek verilerin df
adlı bir veri çerçevesi sütununda olduğunu varsayarsak,
df['Ajan'] = df['Görev Kimliği'].str.slice(8, 11)
Patrona substring
ifadesiyle aynı şeyi yapar:
substring([Görev Kimliği], 9, 3)