Yazılım Eğitim

Yeni Haberler

C# Regex (Regular Expressions) Nedir ve Kullanımı | Ebubekir Bastama

 

regex nedir

Regex Nedir?

Regex (Regular Expressions), metin içinde arama, değiştirme ve filtreleme işlemleri yapmak için kullanılan bir yöntemdir. Regex, bir dizi karakter veya karakter gruplarının oluşturduğu bir desen olarak tanımlanır. Bu desen, metin içinde arama yaparken kullanılır. Eşleşen kısımları belirler veya bu kısımları filtreler.

Regex, birçok programlama dili ve araçta desteklenir. Örneğin, C#, Python, JavaScript, Perl gibi dillerde ve grep, sed, awk gibi araçlar da regex destekler.

Regex, metin içinde arama yaparken kullanabileceğiniz çeşitli karakterler, semboller ve operatörler içerir. Örneğin, metnin başlangıcını veya sonunu temsil eden karakterler, sadece sayıları veya harfleri eşleştiren karakterler, aralıkları veya tekrarları temsil eden karakterler gibi. Bu özellikler sayesinde, çok kapsamlı ve detaylı arama işlemleri gerçekleştirebilirsiniz.

Regex Nerelerde kullanılır?

Regex, metin içinde arama, değiştirme ve filtreleme işlemleri yapmak için kullanılır. Bu nedenle, regex en sık metin işleme uygulamalarında kullanılır. Örnekleri:

  1. Veri madenciliği: Metin içinde belirli bilgileri bulmak veya filtrelemek için regex kullanılır. Örneğin, bir metinde adları veya e-posta adreslerini bulmak.

  2. Web scraping: Web sayfalarından bilgi çekmek için regex kullanılır. Örneğin, bir web sayfasındaki başlıkları veya linkleri bulmak.

  3. Text editor: Metin düzenleyicilerinde arama ve değiştirme işlemleri için regex kullanılır. Örneğin, bir metinde tüm sayıları veya kelime aramak.

  4. Log analizi: Sistem veya ağ günlüklerinde bilgi aramak ve filtrelemek için regex kullanılır. Örneğin, bir günlükte belirli bir hata kodunu aramak.

  5. Form validation: Formlar için girdi değerlerinin doğruluğunu kontrol etmek için regex kullanılır. Örneğin, bir telefon numarasının geçerli bir formatda olup olmadığını kontrol etmek.
Bu sadece bazı örneklerdir, regex metin işleme ihtiyacı olan herhangi bir uygulamada kullanılabilir.

Regex ile Kullanılan Başlıca karakterler,semboller ve operatörler

Regex, metin içinde arama yaparken kullanabileceğiniz çeşitli karakterler, semboller ve operatörler içerir. Bu karakterler arasında en yaygın olarak kullanılanları aşağıda sıralayabilirim:

  1. . : Herhangi bir karakteri temsil eder. Örneğin, "a.b" herhangi bir karakterle ara "b" arasındaki "a" i eşleştirir.

  2. * : Önceki karakterin 0 veya daha fazla tekrarını temsil eder. Örneğin, "a*" sıfır veya daha fazla "a" içeren herhangi bir metni eşleştirir.

  3. + : Önceki karakterin 1 veya daha fazla tekrarını temsil eder. Örneğin, "a+" bir veya daha fazla "a" içeren herhangi bir metni eşleştirir.

  4. ? : Önceki karakterin 0 veya 1 tekrarını temsil eder. Örneğin, "a?" sıfır veya bir "a" içeren herhangi bir metni eşleştirir.

  5. ^ : Metinin başlangıcını temsil eder. Örneğin, "^a" metnin başlangıcında "a" ile başlayan herhangi bir metni eşleştirir.

  6. $ : Metinin sonunu temsil eder. Örneğin, "a$" metnin sonunda "a" ile biten herhangi bir metni eşleştirir.

  7. [] : Bu parantezler arasında yer alan karakterlerden herhangi biriyle eşleştirme yapar. Örneğin, "[abc]" "a", "b" veya "c" ile eşleşen herhangi bir metni eşleştirir.

    Ayrıca, bu parantezler arasında aralık belirtmek için kullanılabilir. Örneğin, "[a-z]" küçük harflerle eşleşen herhangi bir metni eşleştirir.

  8. {} : Bu parantezler arasında yer alan sayı, önceki karakterin belirtilen tekrar sayısı ile eşleştirme yapar. Örneğin, "a{3}" "aaa" ile eşleşen herhangi bir metni eşleştirir.

  9. | : "Veya" anlamına gelir. Örneğin, "a|b" "a" veya "b" ile eşleşen herhangi bir metni eşleştirir.

  10. () : Bu parantezler arasında yer alan karakterleri bir grup olarak işaretler. Örneğin, "(ab)*" "ab" kombinasyonunun sıfır veya daha fazla tekrarı ile eşleşen herhangi bir metni eşleştirir.

  11. \ : Özel anlamı olan karakterleri normal karakter olarak kullanmak için kullanılır. Örneğin, "\." "." karakterini normal bir karakter olarak kullanmak için kullanılır.

  12. \d, \w, \s : Sırasıyla rakam, harf veya alt çizgi, boşluk veya tab karakterlerini temsil eder. Örneğin, "\d{3}" 3 rakamdan oluşan herhangi bir metni eşleştirir.

    Bu karakterler ve operatörler, regex için temel olanlardır. Ancak, daha gelişmiş ve özel amaçlı işlemler için diğer karakterler ve operatörler de mevcuttur.
Daha gelişmiş ve özel amaçlı işlemler için regex karakterleri arasında şunlar yer alabilir:

  1. \b : Kelime sınırını temsil eder. Örneğin, "\btest\b" metin içinde "test" kelimesini eşleştirir.

  2. \B : Kelime sınırının dışını temsil eder. Örneğin, "\Btest\B" metin içinde "test" kelimesinin içinde yer alan "test" i eşleştirir.

  3. \t, \r, \n : Sırasıyla tab, satır başı ve satır sonu karakterlerini temsil eder. Örneğin, "\t\w+" metin içinde tab karakteri ile başlayan herhangi bir metni eşleştirir.

  4. \cX : Kontrol karakteri X'i temsil eder. Örneğin, "\cJ" metin içinde line feed karakterini eşleştirir.

  5. \uXXXX : Unicode kod noktası temsil eder. Örneğin, "\u00A9" metin içinde copyright simgesini eşleştirir.

  6. (?<name>) ve (?'name') : Eşleşen metin gruplarının adlarını belirler. Örneğin, "(?<year>\d{4})" metin içinde 4 rakamdan oluşan yılı "year" adlı grupta eşleştirir.

  7. (?:) : Eşleşen metin gruplarını oluşturmaz. Örneğin, "(?:ab)*" "ab" kombinasyonunun sıfır veya daha fazla tekrarını eşleştirir ancak bir grup oluşmaz.

  8. (?=) ve (?!) : Eşleşme yaparken bir kontrol yapar. Örneğin, "\w+(?=\t)" metin içinde tab karakteri ile sonlanan herhangi bir metni eşleştirir.

  9. (?<=) ve (?<!) : Eşleşme yaparken önceden yer alan bir kontrol yapar.

    Örneğin, "(?<=\d)\w" metin içinde rakamların hemen önünde yer alan herhangi bir harfi eşleştirir.

  10. Bu karakterler ve operatörler, regex için daha gelişmiş ve özel amaçlı işlemler yapmak için kullanılabilir.

    Ancak, kullanımı bu karakterler ve operatörlerin işlem yaptığı konulara göre değişebilir. Örneğin, veri işleme, form validasyonu, metin arama/değiştirme gibi birçok alanda regex kullanılabilir.
Ek olarak, regex için kullanabileceğiniz diğer karakterler ve operatörler şunlar olabilir:

  1. * : Önceki karakterin sıfır veya daha fazla tekrarını eşleştirir. Örneğin, "a*" metin içinde "a" karakterinin sıfır veya daha fazla tekrarını eşleştirir.

  2. + : Önceki karakterin bir veya daha fazla tekrarını eşleştirir. Örneğin, "a+" metin içinde "a" karakterinin bir veya daha fazla tekrarını eşleştirir.

  3. ? : Önceki karakterin sıfır veya bir tekrarını eşleştirir. Örneğin, "a?" metin içinde "a" karakterinin sıfır veya bir tekrarını eşleştirir.

  4. {n} : Önceki karakterin tam olarak n kez tekrarını eşleştirir. Örneğin, "a{3}" metin içinde "a" karakterinin tam olarak 3 kez tekrarını eşleştirir.

  5. {n,} : Önceki karakterin en az n kez tekrarını eşleştirir. Örneğin, "a{3,}" metin içinde "a" karakterinin en az 3 kez tekrarını eşleştirir.

  6. {n,m} : Önceki karakterin en az n, en fazla m kez tekrarını eşleştirir. Örneğin, "a{3,5}" metin içinde "a" karakterinin en az 3, en fazla 5 kez tekrarını eşleştirir.

  7. | : Alternatif eşleşmeler yapar. Örneğin, "a|b" metin içinde "a" veya "b" karakterlerini eşleştirir.

  8. ^ : Metin başlangıcını eşleştirir. Örneğin, "^a" metin içinde "a" karakteriyle başlayan herhangi bir metni eşleştirir.

  9. $ : Metin sonunu eşleştirir. Örneğin, "a$" metin içinde "a" karakteriyle biten herhangi bir metni eşleştirir.

Regex karakterleri ve operatörleri arasındaki bu kombinasyonlar ile çok çeşitli eşleşmeler yapabilirsiniz. Ancak, regex kullanmaya başlamadan önce regex kuralları ve sözdizimini iyi öğrenmeniz önerilir. 
  Ayrıca, C# için regex kullanırken, System.Text.RegularExpressions sınıfını kullanabilirsiniz. Bu sınıf, regex desenlerine dayalı eşleşmeler yapmak ve metinleri işlemek için gerekli metotları içerir.  Örneğin, sınıfın Regex.Match() metodu ile bir metinde belirli bir desene uyan kısımları bulabilirsiniz veya Regex.Replace() metodu ile metinde belirli bir desene uyan kısımları değiştirebilirsiniz.


Regex Kuralları Nelerdir?

Regex kuralları, metinleri eşleştirmek için kullanılan sözdizimidir. Bu kurallar genellikle metin içinde aranacak desenleri tanımlamak için kullanılır. Regex kuralları içerisinde kullanabileceğiniz karakterler, operatörler ve yapılar şunları içerebilir:


  • Literal karakterler: Bu karakterler aynen aratılır, örneğin "a" aratılacak ise "a" yazılır.

  • Metakarakterler: Bu karakterler özel anlamlar taşır, örneğin "." sadece "." karakterini değil, herhangi bir karakteri eşleştirir.

  • Kapsama grupları: Bu karakterler, metin içinde birden fazla karakteri eşleştirmek için kullanılır. Örneğin "[abc]" karakter dizisi, "a", "b" veya "c" karakterlerini eşleştirir.

  • Alternatifler: Bu operatörler, metin içinde birden fazla seçenek arasında seçim yapmak için kullanılır. Örneğin "a|b" alternatifi, metin içinde "a" veya "b" karakterlerini eşleştirir.

  • Tekrar: Bu operatörler, metin içinde karakterlerin tekrarını belirlemek için kullanılır. Örneğin "a*" operatörü, metin içinde "a" karakterinin sıfır veya daha fazla tekrarını eşleştirir.

  • Pozisyon: Bu operatörler, metin içinde karakterlerin pozisyonunu belirlemek için kullanılır. Örneğin "^a" operatörü, metin içinde "a" karakteriyle başlayan herhangi bir metni eşleştirir.

Regex kurallarının kullanımının öğrenilmesi zaman alabilir. Ancak, bu kuralları iyi öğrendiğinizde, metinleri çok hızlı ve etkili bir şekilde eşleştirebilirsiniz.

Regex Söz Dizimi Nasıl olmalıdır?

  1. Metin içinde aranacak desen tanımlanır. Desen, literal karakterler, metakarakterler, kapsama grupları ve operatörler gibi karakterleri içerebilir.

  2. Desen, belirli bir yapıya veya kurallara göre eşleştirilir. Örneğin, desen "^a" ile başlamalıdır veya "a$" ile bitmelidir.

  3. Eşleşen metinler, belirli bir işlemle işlenir. Örneğin, eşleşen metinler düzenlenir, silinir veya değiştirilir.

  4. Sonuçlar, belirli bir biçimde görüntülenir. Örneğin, eşleşen metinler bir liste olarak görüntülenir veya bir dosyaya yazılır.
Regex sözdizimi öğrenmek için regex kurallarını çok iyi bilmeniz gerekir ve regex kurallarını kullanarak çeşitli örnekler yapmalısınız. 
Ayrıca, önceden yazılmış regex desenleri ve kodları incelemeniz ve öğrenmeniz de faydalı olacaktır.

Hiç yorum yok