Ana içeriğe geç

Regexextract

⚠️ 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.

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.

URLKampanya Adı
https://docs.patrona.interlynk.co/?utm_campaign=alicealice
https://docs.patrona.interlynk.co/learn/?utm_campaign=neoneo
https://www.interlynk.co/glossary/?utm_campaign=candycandy

Ş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.

Patrona ifadeleri

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=(.*)")

Daha fazla okuma