Ana içeriğe geç
FreeOnlineTools Go
Türkçe
Açıklama

Regular Expression Nedir? Tam Açıklama

FreeOnlineTools Team tarafından · 2026-09-02 güncellendi

Hızlı Yanıt

Regular expression, bir dizgi setini açıklayan kalıptır. Literal character ve özel anlamlara sahip metacharacter (*, +, ?, ., ^, $, [], (), {}, |, \) kullanır. Regex validation, search, extraction ve replacement için kullanılır. Ücretsiz Regex Tester kullanın.

giriiş

Regular expression (regex veya regexp), bir search kalıbı tanımlayan karakter dizisidir. Kalıp, metni bulmak, match etmek veya değiştirmek için string-search algoritmaları tarafından kullanılır. Regular expression'lar 1950'lerde formal dil teorisinde (Stephen Kleene) ortaya çıktı ve 1970'lerde Unix metin araçlarına (grep, sed, awk) adopt edildi. Bugün regex pratik olarak her programlama dili ve metin editörüne yerleşiktir.

Adım adım

  1. Değişmez ve meta karakterleri anlama

    Değişmez karakterler (a, b, 1, @) birbirleriyle eşleşir. Metakarakterlerin özel anlamları vardır: . herhangi bir karakterle eşleşir, * sıfır veya daha fazla anlamına gelir, + bir veya daha fazla anlamına gelir, ? sıfır veya bir anlamına gelir, ^ başlangıçla eşleşir, $ bitişle eşleşir.

  2. Karakter sınıflarını öğrenin

    Köşeli parantezler [] bir karakter sınıfını tanımlar — [aeiou] herhangi bir sesli harfle, [0-9] herhangi bir rakamla, [^0-9] herhangi bir rakam olmayan harfle eşleşir. Kısayol sınıfları: \d (rakam), \w (kelime karakteri), \s (boşluk) ve bunların büyük harf olumsuzlamaları.

  3. Niceleyicileri kullanma

    Niceleyiciler bir modelin kaç kez tekrarlanacağını belirtir: * (0+), + (1+), ? (0 veya 1), {n} (tam olarak n), {n,} (n+), {n,m} (n'den m'ye). Varsayılan olarak açgözlü; eklemek ? tembel eşleştirme için (örneğin, *?).

  4. Grup ve bağlantı

    Parantezler () yakalama grupları oluşturur. Değişim | her iki tarafla da eşleşir (kedi|köpek). ^ ve $ çapaları dizenin başlangıcını ve bitişini eşleştirir. Daha basit olanlardan karmaşık desenler oluşturmak için bunları kullanın.

Örnekler

E-postaya benzer bir desenle eşleştirin

Giriş: Pattern: [a-z]+@[a-z]+\.[a-z]+

Çıkış: Eşleşmeler: alice@example.com, bob@test.org

Telefon numarası biçimini eşleştirin

Giriş: Pattern: \d{3}-\d{3}-\d{4}

Çıkış: Matches: 555-123-4567

Anahtar/değer çiftlerini ayıklayın

Giriş: Pattern: (\w+)=(\w+)

Çıkış: Matches 'key=value' with group 1 as key, group 2 as value

Yaygın Sorunlar

  • Açgözlü eşleştirme —.* eşleşmelerini mümkün olduğunca fazla tüketir. Kullanmak .*? Tembel eşleştirme için en kısa eşleşmeyi bulma.
  • Özel karakterlerden kaçmayı unutmak —., *, +, ?, vb. özeldir. Kelimenin tam anlamıyla eşleştirmek için \ kullanın (örneğin, \. gerçek bir noktayla eşleşir).
  • Felaket düzeyinde geri izleme — iç içe geçmiş niceleyicilere sahip modeller (örneğin, (a+)+) belirli girdilerde üstel zaman alabilir ve ReDoS saldırılarına neden olabilir.
  • Aşırı eşleştirme — çapalar (^ ve $) olmadan, bir model her yerde eşleşir. Dizenin tamamıyla eşleştirmek için ^...$ kullanın.

İpuçları

  • Basit başlayın ve aşamalı olarak karmaşıklığı ekleyin; karmaşık bir normal ifadede hata ayıklamayı aynı anda yapmak çok zordur.
  • Örnek metinde kalıplarla denemeler yapmak için bir normal ifade test aracı kullanın; eşleşmelerin gerçek zamanlı olarak vurgulandığını görün.
  • Genişletilmiş modu (bazı motorlarda /x bayrağı) kullanarak karmaşık normal ifadeleri yorumlayın veya bunları adlandırılmış parçalara bölün.
  • Kalıpları tarayıcınızda anında test etmek için Regex Test Aracımızı kullanın; kayıt gerektirmez, tamamen özeldir.

İlgili Araçlar

İlgili Kılavuzlar

Referanslar