C# programlama dilinde string işlemleri, metinleri yönetmek ve işlemek için oldukça önemlidir. Regex (Regular Expressions) ise string manipülasyonlarını daha gelişmiş hale getirerek kalıplara uygun metin arama, değiştirme ve doğrulama gibi işlemler yapmamıza olanak tanır.
1. String (Metin) İşlemleri
C#’ta string sınıfı, değiştirilemez (immutable) ve birçok gömülü (built-in) metot içeren bir veri tipidir.
1.1. String Tanımlama ve Birleştirme
string ad = "Ahmet";
string soyad = "Yılmaz";
// Birleştirme 1: + Operatörü
string tamIsim = ad + " " + soyad;
Console.WriteLine(tamIsim); // Ahmet Yılmaz
// Birleştirme 2: string.Concat()
string tamIsim2 = string.Concat(ad, " ", soyad);
Console.WriteLine(tamIsim2);
// Birleştirme 3: string interpolation ($ işareti)
string tamIsim3 = $"{ad} {soyad}";
Console.WriteLine(tamIsim3);C#1.2. String Uzunluğu ve Karakter Erişimi
string metin = "Merhaba Dünya";
Console.WriteLine(metin.Length); // 13
Console.WriteLine(metin[0]); // M
Console.WriteLine(metin[7]); // DC#1.3. String Metotları
C#’ta string sınıfı, metinleri manipüle etmek için birçok yardımcı metot sağlar.
| Metot | Açıklama | Örnek |
|---|---|---|
ToUpper() | Tüm harfleri büyük yapar | "merhaba".ToUpper() → "MERHABA" |
ToLower() | Tüm harfleri küçük yapar | "MERHABA".ToLower() → "merhaba" |
Trim() | Başındaki ve sonundaki boşlukları temizler | " Merhaba ".Trim() → "Merhaba" |
Replace(old, new) | Belirtilen karakterleri değiştirir | "Merhaba".Replace("a", "e") → "Merhebe" |
Contains(value) | Metin içinde belirli bir değerin olup olmadığını kontrol eder | "C# öğreniyorum".Contains("C#") → true |
Substring(start, length) | Belirtilen indexten itibaren alt string alır | "Merhaba".Substring(0,3) → "Mer" |
IndexOf(value) | Belirtilen karakterin ilk geçtiği indexi döndürür | "Merhaba".IndexOf("a") → 4 |
StartsWith(value) | Belirli bir değerle başlayıp başlamadığını kontrol eder | "Merhaba".StartsWith("M") → true |
EndsWith(value) | Belirli bir değerle bitip bitmediğini kontrol eder | "Merhaba".EndsWith("a") → true |
Split(char) | Belirtilen karaktere göre parçalar ve dizi döndürür | "Ali,Veli,Ayşe".Split(',') → ["Ali", "Veli", "Ayşe"] |
Join(seperator, array) | Diziyi birleştirerek string oluşturur | string.Join("-", ["Ali", "Veli", "Ayşe"]) → "Ali-Veli-Ayşe" |
Örnek Kullanım:
string cumle = "C# Programlama Dili";
Console.WriteLine(cumle.ToUpper()); // "C# PROGRAMLAMA DILI"
Console.WriteLine(cumle.Replace("C#", ".NET")); // ".NET Programlama Dili"
Console.WriteLine(cumle.Substring(3, 11)); // "Programlama"C#1.4. String Bölme (Split) ve Birleştirme (Join)
string isimler = "Ahmet,Mehmet,Ayşe,Fatma";
string[] isimListesi = isimler.Split(',');
foreach (var isim in isimListesi)
{
Console.WriteLine(isim);
}
// Dizi elemanlarını birleştirme
string yeniMetin = string.Join(" - ", isimListesi);
Console.WriteLine(yeniMetin); // "Ahmet - Mehmet - Ayşe - Fatma"C#1.5. String Formatlama
string ad = "Ahmet";
int yas = 25;
Console.WriteLine($"Benim adım {ad}, {yas} yaşındayım.");C#C#
Benim adım Ahmet, 25 yaşındayım.C#2. Regex (Regular Expressions) Kullanımı
Regex (Düzenli İfadeler), metin içinde belirli kalıpları aramak, doğrulamak ve değiştirmek için kullanılır.
Regex Kullanabilmek İçin:System.Text.RegularExpressions kütüphanesi kullanılmalıdır.
using System;
using System.Text.RegularExpressions;C#2.1. Regex Temel Kullanımı
Regex regex = new Regex(@"\d+"); // Sadece sayıları eşleştir
string metin = "Bugün 12 Şubat 2025";
Match match = regex.Match(metin);
if (match.Success)
{
Console.WriteLine($"Eşleşen sayı: {match.Value}");
}C#C#
Eşleşen sayı: 12C#2.2. Regex ile String Doğrulama
| Regex Pattern | Açıklama | Örnek |
|---|---|---|
^\d+$ | Sadece rakam içerir mi? | "12345" → ✅, "123a" → ❌ |
^[a-zA-Z]+$ | Sadece harf içerir mi? | "Hello" → ✅, "Hello1" → ❌ |
^[a-zA-Z0-9]+$ | Harf veya rakam içerir mi? | "Test123" → ✅, "Test#" → ❌ |
^\w+@\w+\.\w+$ | Geçerli e-posta mı? | "test@mail.com" → ✅, "test@mail" → ❌ |
^\d{11}$ | 11 haneli TC Kimlik No mu? | "12345678901" → ✅, "12345" → ❌ |
2.3. Regex ile E-Posta Doğrulama
string email = "test@mail.com";
Regex regex = new Regex(@"^\w+@\w+\.\w+$");
if (regex.IsMatch(email))
{
Console.WriteLine("Geçerli e-posta adresi.");
}
else
{
Console.WriteLine("Geçersiz e-posta adresi.");
}C#2.4. Regex ile Telefon Numarası Doğrulama
string telefon = "+90 532 123 45 67";
Regex regex = new Regex(@"^\+90\s\d{3}\s\d{3}\s\d{2}\s\d{2}$");
if (regex.IsMatch(telefon))
{
Console.WriteLine("Geçerli telefon numarası.");
}
else
{
Console.WriteLine("Geçersiz telefon numarası.");
}C#2.5. Regex ile String Değiştirme
string metin = "Bugün hava çok güzel!";
Regex regex = new Regex("güzel");
string yeniMetin = regex.Replace(metin, "soğuk");
Console.WriteLine(yeniMetin); // "Bugün hava çok soğuk!"C#