Regexextract
⚠️
regexextract
, MongoDB, SQLite ve SQL Server için kullanılamaz. Druid içinregexextract
yalnızca Druid-JDBC sürücüsü için kullanılabilir.
regexextract
, metninizin belirli bir bölümünü almak için normal ifadeler (regex) kullanır.
regexextract
, URL'ler veya serbest biçimli anket yanıtları gibi çok az veya hiç yapısı olmayan metinler için idealdir. SKU numaraları, kimlikler veya diğer kod türleri gibi tahmin edilebilir biçimlerdeki dizelerle çalışıyorsanız, bunun yerine daha basit substring ifadesini kontrol edin.
Aşağıdakiler gibi şeyler için daha kısa, daha okunabilir etiketlere sahip özel sütunlar oluşturmak için regexextract
kullanın:
- filtre açılır menüleri,
- grafik etiketleri veya
- gömme parametreleri.
Sözdizimi | Örnek |
---|---|
regexextract(metin, normal_ifade) | regexextract("regexextract", "ex(.*)") |
Normal bir ifade kullanarak metninizin belirli bir bölümünü alır. | "extract" |
Metin arama ve temizleme
Çok sayıda farklı URL'ye sahip web verileriniz olduğunu ve her URL'yi daha kısa, daha okunabilir bir kampanya adıyla eşlemek istediğinizi varsayalım.
URL | Kampanya Adı |
---|---|
https://docs.patrona.interlynk.co/?utm_campaign=alice | alice |
https://docs.patrona.interlynk.co/learn/?utm_campaign=neo | neo |
https://www.interlynk.co/glossary/?utm_campaign=candy | candy |
Şu ifadeyle bir özel sütun Kampanya Adı oluşturabilirsiniz:
regexextract([URL], "^[^?#]+\?utm_campaign=(.*)")
Burada, regex deseni ^[^?#]+\?
tüm geçerli URL dizeleriyle eşleşir. utm_campaign=
öğesini istediğiniz herhangi bir sorgu parametresiyle değiştirebilirsiniz. Regex deseninin sonunda, yakalama grubu (.*)
, sorgu parametresi utm_campaign=
'den sonra görünen tüm karakterleri alır.
Artık Kampanya Adı'nı filtre açılır menüleri, grafikler ve gömme parametreleri gibi temiz etiketlere ihtiyaç duyduğunuz yerlerde kullanabilirsiniz.
Kabul edilen veri türleri
Veri türü | regexextract ile çalışır |
---|---|
Dize | ✅ |
Sayı | ❌ |
Zaman damgası | ❌ |
Boolean | ❌ |
JSON | ❌ |
Sınırlamalar
regexextract
, MongoDB, SQLite ve SQL Server için kullanılamaz. Druid için regexextract
yalnızca Druid-JDBC sürücüsü için kullanılabilir.
Regex karanlık bir sanat olabilir. Uyarıldınız.
İlgili işlevler
Bu bölüm, Patrona regexextract
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
Substring
Tutarlı bir biçime (aynı sayıda karakter ve bu karakterlerin aynı göreli sırası) sahip metni aramak istediğinizde substring öğesini kullanın.
Örneğin, URL örnek verilerinden sorgu parametresini almak için substring
kullanamazsınız, çünkü URL yolları ve parametre adlarının her ikisi de değişken uzunluklara sahiptir.
Ancak https://www.
'den sonraki ve .com
'dan önceki her şeyi çekmek istiyorsanız, bunu şunlardan biriyle yapabilirsiniz:
substring([URL], 13, 8)
veya
regexextract([URL], "^(?:https?:\/\/)?(?:[^@\/\n]+@)?(?:www\.)?([^:\/.\n]+)")
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
url,
SUBSTRING(url, '^[^?#]+\?utm_campaign=(.*)') AS kampanya_adı
FROM beyaz_tavşanı_takip_et
Patrona regexextract
ifadesine eşdeğerdir:
regexextract([URL], "^[^?#]+\?utm_campaign=(.*)")
E-tablolar
örnek verilerimiz, "URL"nin A sütununda olduğu bir e-tabloda bulunuyorsa, e-tablo işlevi
regexextract(A2, "^[^?#]+\?utm_campaign=(.*)")
hemen hemen Patrona ifadesiyle aynı sözdizimini kullanır:
regexextract([URL], "^[^?#]+\?utm_campaign=(.*)")
Python
örnek verilerin df
adlı bir veri çerçevesi sütununda olduğunu varsayarsak,
df['Kampanya Adı'] = df['URL'].str.extract(r'^[^?#]+\?utm_campaign=(.*)')
Patrona regexextract
ifadesiyle aynı şeyi yapar:
regexextract([URL], "^[^?#]+\?utm_campaign=(.*)")