Regex test aracı
Entegrasyonlarda veri ayıklarken ya da doğrularken düzenli ifadeyi canlı sınayın. Desen ve metin cihazınızdan çıkmaz; desen ayrı bir iş parçacığında çalışır, bu yüzden aşırı geri izleme yapan bir desen sayfayı dondurmaz, 1 saniyede durdurulur.
Eğik çizgi (/…/) olmadan yalnızca desen. JavaScript (ECMAScript) söz dizimi.
$1 ya da $<ad> ile gruplara, $& ile bütün eşleşmeye başvurun. Alan boşsa önizleme kapalıdır.
Hazır desenler
Desen ve metin cihazınızdan çıkmaz; hepsi tarayıcıda çalışır, hiçbir şey gönderilmez ya da saklanmaz.
Başlamak için bir desen yazın ya da hazır desenlerden birini seçin.
Bu bir JavaScript regex'idir
- Adlandırılmış grup JavaScript'te (?<ad>…) yazılır; Python'da (?P<ad>…) olur. Değiştirmede $<ad>, $1 ve $& kullanılır (PCRE/Python'da \1 ya da \g<ad>).
- Atomik gruplar (?>…) ve sahiplenici nicelleyiciler (a++) JavaScript'te yoktur; (?i) gibi satır içi bayraklar da yoktur, bayraklar dışarıda verilir.
- \d, \w, \b varsayılan olarak ASCII'dir; Türkçe ve diğer harfler için u bayrağı ve \p{L} kullanın.
- . satır sonunu eşlemez (s bayrağı gerekir); ^ ve $ m bayrağı olmadan yalnızca metnin başı ve sonudur.
Sonuç JavaScript motorunun sonucudur. Üretimde kullandığınız motor (PCRE, Python re, Java, .NET, Go RE2) farklı davranabilir; deseni hedef ortamda ayrıca sınayın. Zaman aşımı koruması tarayıcıdaki sayfayı korur, sunucudaki kodunuzu değil: kullanıcı girdisini sunucuda regex'e verecekseniz sınırlı uzunluk ve doğrusal zamanlı bir motor (RE2) düşünün.
Veri ayıklama ve doğrulama kurallarını entegrasyon akışlarınıza güvenle yerleştirmek ister misiniz? Birlikte tasarlayalım.
Görüşme talep edin01
Nasıl kullanılır
A
Deseni yazın (ya da hazır bir örnek seçin), bayrakları işaretleyin ve örnek metni yapıştırın.
B
Vurgulanmış metinde ve tabloda eşleşmeleri, konumlarını, yakalama ve adlandırılmış grupları görün.
C
İsterseniz değiştirme alanına $1 ya da $<ad> içeren bir ifade yazıp sonucu önizleyin.
02
Bu araç hangi regex lehçesini çalıştırır?
Tarayıcının kendi JavaScript (ECMAScript) düzenli ifade motorunu. Söz dizimi çoğu dilde ortaktır, ama farklar vardır: adlandırılmış grupların yazımı, atomik gruplar, satır içi bayraklar ve değiştirme dizilerinin biçimi dilden dile değişir.
Deseni başka bir dile (Python, Java, .NET, PCRE) taşıyacaksanız aracı ön sınama için kullanın, sonra hedef ortamda yeniden doğrulayın. Aşağıdaki liste en sık karşılaşılan farkları özetler.
03
Aşırı geri izleme ve zaman aşımı koruması
Bazı desenler, özellikle iç içe nicelleyiciler ((a+)+$ gibi), uygun olmayan bir metinde üstel sayıda yol dener ve saniyeler, hatta dakikalar sürebilir. Ana iş parçacığında çalışsa sekme donardı.
Araç deseni ayrı bir Web Worker'da çalıştırır; 1 saniye içinde yanıt gelmezse worker sonlandırılır ve zaman aşımı bildirilir. Aynı desen sunucunuzda da CPU tüketebilir; bu yüzden zaman aşımı mesajını bir uyarı olarak okuyun.
04
Bayraklar, gruplar ve değiştirme
g tüm eşleşmeleri bulur, i harf büyüklüğünü yok sayar, m ^ ve $'ı satır başı/sonu yapar, s noktanın satır sonunu da eşlemesini sağlar, u Unicode kod noktalarıyla çalışır, y eşleşmeyi tam olarak aranan konumda zorlar.
Parantezler yakalama grubu oluşturur ve numaralanır ($1, $2 …); (?<ad>…) ile ad verilir, (?:…) yakalamaz. Değiştirmede $1, $<ad> ve $& kullanılır; eşleşmeyen bir grup boş metin olur.
Sık sorulanlar
- Neden nokta (.) satır sonunu eşlemiyor?
- JavaScript'te nokta varsayılan olarak satır sonu karakterlerini eşlemez. Çok satırlı metinde her şeyi eşlemek için s bayrağını açın ya da [\s\S] kullanın. ^ ve $ için ise m bayrağı gerekir; yoksa yalnızca metnin başı ve sonudur.
- “Zaman aşımı” ne demek, desenim yanlış mı?
- Desen geçerli ama bu metinde çok uzun sürüyor demektir; genellikle iç içe nicelleyicilerden (ör. (a+)+, (.*)*) gelen aşırı geri izleme sebebidir. Deseni belirsizliği azaltacak biçimde yeniden yazın: nicelleyicileri iç içe koymayın, alternatifleri birbirinden ayırın, mümkünse daha kesin karakter sınıfları kullanın.
- Eşleşmeler neden yalnızca bir tane görünüyor?
- g bayrağı kapalıysa JavaScript yalnızca ilk eşleşmeyi bulur. Bütün eşleşmeleri görmek için g'yi işaretleyin. Değiştirmede de aynı kural geçerlidir: g yoksa yalnızca ilk eşleşme değişir.
- Adlandırılmış grupları nasıl kullanırım?
- Deseni (?<yil>\d{4}) gibi yazın; tabloda grup adıyla görünür ve değiştirmede $<yil> ile başvurulur. Python'da aynı grup (?P<yil>…) biçimindedir; taşırken yazımı değiştirmeniz gerekir.
- GS1 uygulama tanımlayıcılarını (AI) nasıl ayıklarım?
- Parantezli okunabilir biçimde (01)09506000134352(17)261231 gibi metinlerde \((?<ai>\d{2,4})\)(?<deger>[^(]+) deseni her AI'yı ve değerini adlandırılmış gruplarla verir. Parantezsiz ham GS1 dizgisinde uzunluklar AI'ya bağlıdır; orada AI tablosuna göre ayrıştırmak gerekir ve düzenli ifade tek başına yetmez.
Veri ayıklama kurallarını sistemlerinize güvenle yerleştirelim
CRM, ERP, SCADA ve lojistik verisini ayıklama, doğrulama ve dönüştürme kurallarını entegrasyon akışlarında birlikte tasarlıyoruz. Ücretsiz keşif görüşmesinde mevcut yapınızı konuşalım.