String İşlemleri ve Regex Kullanımı

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]); // D
C#

1.3. String Metotları

C#’ta string sınıfı, metinleri manipüle etmek için birçok yardımcı metot sağlar.

MetotAçı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ştururstring.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ı: 12
C#

2.2. Regex ile String Doğrulama

Regex PatternAçı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#