"/>"/>
Yazılım Dilleri
Asp.Net 4.5 Kitabı
Skip Navigation Links

Asp.Net Arama Sonuçlarında Kelime Vurgulama (Highlight Keyword) İşlemi

Asp.Net uygulamanızda aranan kelimeyi vurgulama (kalın ya da renkli yazdırma) işlemi nasıl yapılır öğrenelim.

Web sitelerinde arama yaptığınızda arama yapılan kelimelerin bulunma noktalarının arkaplanları farklı şekilde (sarı renkte ya da kalın fontta) görünmektedir. Örneğin yazilimdilleri.net sitemizde “sharepoint” kelimesini arayalım.

http://www.yazilimdilleri.net/Arama.aspx?yazilimsorgu=Sharepoint

Aradığımız kelimenin kalın fontta yazıldığını, diğer kelimelerin normal fontta kaldığını göreceksiniz. Benzer bir işlemi Asp.Net sayfalarımızda nasıl yapabiliriz, öğrenelim.

Yapacağımız işlem aslında metin içerisinde bir kelimeyi küçük ve büyük harf duyarsız (case insensitive) olarak değiştirme işlemidir. Yukarıdaki örneği ele alırsak “Sharepoint 2013 Makaleleri, Görsel Eğitimleri, İpuçları – Sharepoint ...” metni içerisinde “sharepoint” kelimesini bulup kalın fontta yazıyoruz (“<b>Sharepoint</b>”).

Bu işlemi bir önceki makalemde anlattığım C# ile Case Insensitive (küçük – büyük harf duyarsız) string değiştirme işlemi ile kolaylıkla gerçekleştirebiliriz.

private string Vurgula(string metin, string anahtarKelime)
{
    Regex rx = new Regex(anahtarKelime, RegexOptions.IgnoreCase);
    return rx.Replace(metin, "<b>$0</b>");
}

$0, değiştirilmesi istenen ifadeyi tanımlamaktadır. Örneğin aranan kelime “sharepoint” ve bulunan kelime “Sharepoint” ise form üzerinde “Sharepoint” kelimesinin değişmeden kalması gerekmektedir. $0, burada “Sharepoint” kelimesini ifade etmektedir.

Formumuza bir adet Label kontrolü ekleyelim (ID: lbSonuc) ve örnek uygulamamızı oluşturalım.

protected void Page_Load(object sender, EventArgs e)
{
    string metin = "Sharepoint 2013 Makaleleri, Görsel Eğitimleri, İpuçları – SharePoint ...";
    lbSonuc.Text = Vurgula(metin, "sharepoint");
}

private string Vurgula(string metin, string anahtarKelime)
{
    Regex rx = new Regex(anahtarKelime, RegexOptions.IgnoreCase);
    return rx.Replace(metin, "<b>$0</b>");
}

Projeyi çalıştırdığımızda metin içerisindeki “sharepoint” kelimelerinin küçük büyük harf fark etmeksizin kalın yazıldığını göreceksiniz.

 

Yepyeni makalelerde görüşmek dileğiyle :)

Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com

 

Yorumlar (2)

  1. Avatar
    Mehmet Aktaş

    01.06.2013

    Harika bir yöntem teşekkürler.

  2. Avatar
    Yunus Emre

    06.09.2013

    Öncelikle gerçekten çok güzel bir çalışma ve benim çok ama çok işime yaradı. Bir şey sormak istiyorum bir metinde bulunan birden fazla kelimeleri nasıl vurgulayabiliriz. Demek istediğim şu; -------------------------------------- "Bu bir örnek vurgulama yazısıdır. Bu cümledeki vurgulamalar." -------------------------------------- Mesala yukardaki metin gibi bir metin olduğunu düşünelim bu metinden "örnek", "yazı","cümle" alanlarını medhodu 3 kere çalıştırmadan metin üzerinde vurgulamak istersem nasıl bir yöntem kullanmalıyım. Cevabınızı bekliyorum. Şimdiden teşekkürler. İyi günler.

Yorum Yap

Mail listesine katılmak için tıklayınız

Hakkımdaki son bilgilere anlık erişmek için mail listesine katılabilirsiniz.