Düzenli ifade nedir?

Düzenli ifade (regex), bir arama kalıbı tanımlayan karakter dizisidir. Başlangıçta biçimsel dil teorisi için geliştirilen düzenli ifadeler, artık neredeyse her programlama dilinde ve metin işleme aracında string'leri eşleştirmek, aramak ve düzenlemek için kullanılmaktadır. [a-z]+@[a-z]+\.com gibi bir kalıp, basit bir e-posta adresinin yapısını tanımlar: harfler, ardından @ sembolü, daha fazla harf, bir nokta ve "com" string'i.

Arama işleminin ötesinde, düzenli ifadeler veri üretmek için de bir şablon görevi görebilir. Eşleştirme sürecini tersine çevirerek, bir regex motoru belirli bir kalıba uyan rastgele string'ler üretebilir. Bu özellik; yazılım testi, prototipleme ve gerçek kullanıcı bilgilerine başvurmadan veritabanlarını gerçekçi görünümlü sahte verilerle doldurmak için özellikle kullanışlıdır.

Araç açıklaması

Bu araç, girdiğiniz herhangi bir düzenli ifadeyle eşleşen rastgele string'ler üretir. Bir regex kalıbı girin — ya da yerleşik ön ayarlardan birini seçin — ve anında 1.000'e kadar eşleşen değer oluşturun. Karakter sınıfları, niceleyiciler, gruplar, alternasyon ve geri referanslar dahil olmak üzere tüm standart regex sözdizimini destekler. Çıktı, doğrudan test verileri, başlangıç verisi veya doğrulama betikleri için girdi olarak kullanılabilir.

Özellikler

  • Yerleşik ön ayarlar: e-posta, IPv4, UUID, ABD telefon numarası, tarih, hex renk, plaka ve MAC adresi gibi yaygın formatlar için
  • Özel regex girişi: tam JavaScript düzenli ifade sözdizimini destekler
  • Ayarlanabilir sayı: her çalıştırmada 1 ile 1.000 arasında üretilen değer
  • Maksimum tekrar kontrolü: sınırsız niceleyicilerin (+, *, {n,}) ne kadar genişleyeceğini sınırlayarak aşırı uzun string'lerin oluşmasını engeller
  • Yalnızca benzersiz mod: çıktıdaki tekrarlanan değerleri kaldırır ve kalıbın entropisinin yeterli sayıda farklı değer üretmeye yetmediği durumlarda uyarı gösterir

Kullanım alanları

  • Yazılım testi: Gerçek kullanıcı bilgilerini ifşa etmeden otomatik test paketleri için test verisi veya başlangıç verisi olarak kullanmak üzere yüzlerce geçerli görünümlü e-posta adresi, UUID veya IP adresi oluşturun.
  • Veritabanı doldurma: Geliştirme veya hazırlık ortamı veritabanlarını, sütun kısıtlamalarına ve doğrulama kurallarına uyan gerçekçi sahte verilerle hızlıca doldurun.
  • Regex öğrenimi: Bir kalıp yazarak ve hangi string'leri ürettiğini anında görerek düzenli ifade sözdizimini deneyin; bu sayede niceleyicileri, karakter sınıflarını ve gruplamayı daha kolay anlayın.

Seçeneklerin açıklaması

Seçenek Açıklama
Ön ayar Yaygın veri formatları için yerleşik bir kalıp seçin ya da kendi regex'inizi yazmak için "Özel" seçeneğini belirleyin. Bir ön ayar seçildiğinde regex kalıbı alanı otomatik olarak doldurulur.
Regex kalıbı Veri üretmek için kullanılan düzenli ifade. Karakter sınıflarını ([a-z]), niceleyicileri ({3,8}, +, *), grupları ve alternasyonu ((com|net|org)) ve özel token'ları (\d, \w) destekler.
Sayı Üretilecek string sayısı; 1 ile 1.000 arasında.
Maksimum tekrar Sınırsız niceleyicilerin genişlemesini sınırlar. Örneğin, maksimum tekrar 10 olarak ayarlandığında [a-z]+ kalıbı en fazla 10 karakterlik string'ler üretir. Aralık: 1–100.
Yalnızca benzersiz değerler Etkinleştirildiğinde, çıktıda yinelenen string'lerin görünmemesini sağlar. Kalıp yeterli sayıda benzersiz değer üretemiyorsa, gerçekte üretilen sayıyla birlikte bir uyarı gösterilir.

İpuçları

  • Regex kalıplarının üretilen veriye nasıl dönüştüğünü öğrenmek için bir ön ayarla başlayın ve üzerinde değişiklik yapın.
  • Sabit uzunlukta çıktıya ihtiyaç duyuyorsanız, {5,10} gibi aralıklar yerine {8} gibi tam niceleyiciler kullanın.
  • Üretilen string'leri kısa ve okunabilir tutmak için + veya * kullanırken maksimum tekrar değerini düşürün.
  • Tekrar etmemesi gereken tanımlayıcılar veya anahtarlar üretirken benzersiz modu etkinleştirin; ancak benzersizlik sınırına çarpmamak için yeterli çeşitliliğe sahip bir kalıp kullanın.

SSS

Lookahead veya lookbehind kullanabilir miyim? Üretici, randexp.js kütüphanesine dayanmaktadır ve çoğu JavaScript regex özelliğini destekler. Lookahead ve lookbehind ifadeleri, karakter içeriği tanımlamadığından üretim için desteklenmemektedir.

Neden istediğimden daha az sonuç aldım? "Yalnızca benzersiz değerler" etkinleştirildiğinde, kalıbın istenen sayıda farklı string üretmeye yetecek kadar olası permütasyonu olmayabilir. Karakter sınıflarını genişletmeyi veya niceleyici aralıklarını artırmayı deneyin.

Çıktı gerçekten rastgele mi? Çıktı sözde rastgeledir. Her çalıştırma farklı sonuçlar üretir; ancak rastgelelik kriptografik olarak güvenli değildir. Bu aracı parola veya güvenlik token'ı üretmek için kullanmayın.