Regex Nedir?

Makale

Regex (düzenli ifadenin kısaltması), bir arama kalıbını tanımlayan karakter dizisidir. Regex; basit kelime aramalarından karmaşık metin işleme görevlerine kadar, metinleri eşleştirmek, bulmak, değiştirmek veya doğrulamak için kullanılır. Tüm büyük programlama dilleri yerleşik bir regex motoru içerir; bu da onu geliştiricilerin araç kutusundaki en evrensel araçlardan biri yapar.

Düzenli ifadeleri etkileşimli olarak test etmek ister misiniz?

Regex Test Aracını Aç →

Tarihçe

Düzenli ifadeler, biçimsel dil teorisinden doğmuştur. Matematikçi Stephen Cole Kleene, 1950'lerde bunları düzenli dilleri tanımlamak için bir gösterim olarak tanıttı. Ken Thompson, regex'i UNIX metin editörü ed'de ve ardından grep'te (1973) uyguladı. Perl (1987) sözdizimini önemli ölçüde genişletti ve günümüz dillerinin büyük çoğunluğunun takip ettiği PCRE (Perl Uyumlu Düzenli İfadeler) dilini popüler hale getirdi.

Temel Sözdizimi

Bir düzenli ifade, sınırlayıcılar arasına yazılan bir kalıptır (JavaScript'te: /kalıp/bayraklar). Kalıp; literal karakterler, özel meta karakterler ve niceleyiciler içerebilir.

/* E-posta doğrulama regex'i */
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

/* Eşleşir: ornek@alan.com */
/* Eşleşmez: bu-email-degil */

Temel Kavramlar

Yaygın Kalıplar

Bayraklar

Kullanım Alanları

Dikkat Edilmesi Gerekenler

Sıkça Sorulan Sorular

Regex nedir?

Regex (düzenli ifade), bir arama kalıbını tanımlayan karakter dizisidir. Metinlerde eşleştirme, bulma, değiştirme veya doğrulama amacıyla kullanılır. Tüm büyük programlama dilleri düzenli ifadeleri destekler.

Regex ne anlama gelir?

Regex, regular expression (düzenli ifade) kelimesinin kısaltmasıdır. Bu terim, 1950'lerde matematikçi Stephen Cole Kleene tarafından geliştirilen biçimsel dil teorisinden gelmektedir.

Regex ne için kullanılır?

Regex; giriş doğrulama (e-posta, telefon, şifre), metin editörlerinde ara ve değiştir, log dosyası ayrıştırma, web çerçevelerinde URL yönlendirme ve yapılandırılmamış metinden veri çıkarma için kullanılır.

Regex tüm programlama dillerinde aynı mı?

Çoğu dil, PCRE tabanlı ortak bir sözdizimini destekler. JavaScript, Python, Java ve PHP'nin tümü PCRE uyumlu motorlar kullanır; ancak bayraklar ve gelişmiş özellikler diller arasında farklılık gösterebilir.

Regex'te * ile + arasındaki fark nedir?

* niceleyicisi, önceki öğenin sıfır veya daha fazla tekrarını eşleştirir. + niceleyicisi, bir veya daha fazla tekrarı eşleştirir. Yani a* boş dize dahil eşleşirken, a+ en az bir "a" gerektirir.

Regex'te ^ ne anlama gelir?

^ karakterinin iki anlamı vardır. Bir kalıbın başında, dizenin başlangıcını (çok satırlı modda satır başlangıcını) eşleştiren bir çıpa noktasıdır. Bir karakter sınıfının içinde [^abc] ise olumsuzlama anlamına gelir — listelenenler dışındaki herhangi bir karakteri eşleştirir.

İlgili Makaleler

Kaynaklar