Bir kaç kullanım örneği vermek gerekirse:

"colou?r", hem "color" kelimesini seçer, hem de "colour" kelimesini.
Çünkü "" />

regular expressions

  1. Bir metinde belli biçimleri** seçmeye yarayan ifadelere denir, "Regexp" diye de geçer.
    Bir kaç kullanım örneği vermek gerekirse:

    "colou?r", hem "color" kelimesini seçer, hem de "colour" kelimesini.
    Çünkü "?" karakteri, kendisinden önce gelen karakter için "olmasa da olur" anlamını taşır.

    "gr[ae]y", hem "gray" kelimesini seçer, hem de "grey" kelimesini.
    Çünkü köşeli parantezler içerisine verdiğiniz karakterlerden herhangi birinin tutması yeterlidir.

    "[0-8][0-9] [a-zA-Z]{1,3} [0-9]{2,5}", Türkiye'ye ait bir plaka kodunu seçer.
    "[0-8]", 0 ile 8 arasında bir rakamı (il sayımız 80'lerde olduğu için),
    "[0-9]", 0 ile 9 arasında bir rakamı seçer.

    "[a-z]", a ile z arasındaki bir küçük harfi,
    "[A-Z]" ise, A ile Z arasındaki bir büyük harfi seçeceği için,
    [a-zA-Z] de, küçük veya büyük herhangi bir* harfi seçecektir.

    "{1,3}", kendisinden önce gelen karakter veya gruptan en az 1, en fazla 3 tane olacağını belirtir.
    Bu yüzden "[a-zA-Z]{1, 3}", en az 1, en fazla 3 harfin yan yana gelmesi anlamına gelir.

    "[0-9]{2,5}", 0 ile 9 arasında en az 2, en fazla 5 rakamın yan yana gelmesini bekler.

    Desene geri dönersek: "[0-8][0-9] [a-zA-Z]{1,3} [0-9]{2,5}"
    34 ASD 4587 bu desen tarafından seçilecek ama "92 ASD 123" veya "06 DSA 3A45" seçilmeyecektir.
    Çünkü "92 ASD 123"ün ilk karakteri 0 ile 8 arasında bir sayı değil,
    "06 DSA 3A45"in ise, harflerden sonraki ilk -en az- iki karakteri rakam değildir.

    Regexp kullanarak seçimin farklı yerlerini gruplamanız da mümkündür:
    Örneğin yukarıdaki plaka deseni şu şekilde yazılabilir:
    "(?<İl>[0-8][0-9]) (?<A>[a-zA-Z]{1,3}) (?<N>[0-9]{2,5})"

    Bu sayede bir metinde Regexp kullanarak arama yaparsanız, her eşleşmede bu isimlerle farklı parçalar elde edebilirsiniz.
    .NET Framework içindexi Regex sınıfını kullanarak bir C# örneği verirsek:

    var text = "34 ABC 1234, 06 DEF 5678";
    var regex = new Regex("(?<İl>[0-8][0-9]) (?<A>[a-zA-Z]{1,3}) (?<N>[0-9]{2,5})");
    var match = regex.Match(text);
    while (match.Success)
    {
    var c = match.Groups["İl"].Value;
    var a = match.Groups["A"].Value;
    var n = match.Groups["N"].Value;
    plates.Add(new LicensePlate(int.Parse(c), a, int.Parse(n)));
    match = match.NextMatch();
    }

    Verdiğiniz metinde bulunan bütün plaka kodlarını LicensePlate koleksiyonunuza ekleyecektir.
    (#332118) sfx|03.04.2013 09:53|