Kullanıcının girdiği bir ifade içinde yine kullanıcının gireceği bir desene göre arama yapan ve uygun kelimeleri sonuç olarak gösteren programın Console uygulaması.

Örnek…:
string str = “Yağ yağ yağmur Teknede hamur Bahçede çamur”;
Desen:: –mur
Sonuç:
hamur
çamurDesen:: *mur
Sonuç:
yağmur
hamur
çamurDesen:: *e-e
Sonuç:
Teknede
Bahçede
gibi.. programın kodları aşağıda çalışma mantığı ilk olarak girilen ifade kelimelere ayrılıyor daha sonra her kelime üzerinde verilen desene göre karakter karakter kontrol yapılıyor.
static string ifade, aranan;
static void Main(string[] args)
{
Console.WriteLine("Bir ifade girin;");
ifade = Console.ReadLine();
Console.WriteLine("Tek karakter için(-) birden fazla karakter (*) ");
Console.WriteLine("Şeklinde olmak üzere bir arama ifadesi girin");
aranan = Console.ReadLine();
kontrol(ifade, aranan);
Console.ReadKey();
}//http://www.bilisimogretmeni.com/
static void kontrol(string metin, string joker)
{
string[] kelimeler = metin.Split(' ');
foreach (string kelime in kelimeler)
{
if (DesenAra(joker, kelime) == true)
{
Console.WriteLine(kelime);
}
}
}
static Boolean DesenAra(String desen, String kelime)
{
if (String.Compare(desen, kelime) == 0)
{
return true;
}//http://www.bilisimogretmeni.com/
else if (String.IsNullOrEmpty(kelime))
{
if (String.IsNullOrEmpty(desen.Trim(new Char[1] { '*' })))
{
return true;
}
else
{
return false;
}
}
else if (desen.Length == 0)
{
return false;
}
else if (desen[0] == '-')
{
return DesenAra(desen.Substring(1), kelime.Substring(1));
}
else if (desen[desen.Length - 1] == '-')
{
return DesenAra(desen.Substring(0, desen.Length - 1), kelime.Substring(0, kelime.Length - 1));
}
else if (desen[0] == '*')
{
if (DesenAra(desen.Substring(1), kelime))
{
return true;
}
else
{
return DesenAra(desen, kelime.Substring(1));
}
}
else if (desen[desen.Length - 1] == '*')
{
if (DesenAra(desen.Substring(0, desen.Length - 1), kelime))
{
return true;
}
else
{
return DesenAra(desen, kelime.Substring(0, kelime.Length - 1));
}
}//http://www.bilisimogretmeni.com/
else if (desen[0] == kelime[0])
{
return DesenAra(desen.Substring(1), kelime.Substring(1));
}
return false;
}

