Düzenli ifade

Vikipedi, özgür ansiklopedi
Atla: kullan, ara

Bilgisayarcılıkta düzenlemeli ifadeler, ele alınan metindeki kimi katarların kısa yoldan ve esnek bir biçimde belirlenmesini sağlar. Bu katarlar belli karakterler, kelimeler veya karakter örüntüleri olabilir. Düzenlemeli ifadeler, bir biçimsel dil kullanarak yazılır ve bir düzenlemeli ifade işleyici tarafından yorumlanır. Bir düzenlemeli ifade işleyici, ya ayrıştırıcı üreteci olarak hizmet eden ya da metni inceleyip verilen tarife uygun kısımlarını belirleyen bir programdır.

Aşağıda bir düzenlemeli ifade ile ifade edilebilecek tariflere birkaç örnek görülebilir:

  • herhangi bir yerde bulunan "ara" karakter dizisi; "ara", "araba", "paravan" gibi
  • diğer karakterlerden yalıtılmış şekilde bulunan "ara" kelimesi
  • kendisinden önce "kısa" veya "uzun" kelimesi geçen "ara" kelimesi
  • bir veya daha fazla rakamdan sonra gelen "TL" karakter dizisi

Düzenlemeli ifadeler hemen hemen tüm programlama dillerinde kütüphaneler olarak mevcuttur. Ancak bunlar her biçimsel dili ayırmak için yeterli değildir, bkz. Biçimsel dil kuramı. Pek çok programlama dili ve/veya programlama dilinde, bu işlem ayrıştırıcı jeneratör yardımı ile otomatik üretilen bir programla yapılabilir.

Kullanım alanları[değiştir | kaynağı değiştir]

kullanım alanı özellikle bilgisayar ve veri girişi olan her yerede kullanım alanı vardır. son dönemlerde özellikle (X) sitesindeki *.Html dosyasının içeriğini izinsiz (Y)Sitesine aktarmaya bu aktarma işlemi sırasında örneğin içeriğin başladığı bölümdeki html kodunun tanımlanması ve içerik içinde yer alan istenmeyen değişkenlerin ve reklamları ignore ederek (görmezlikten geçerek) siteden siteye izinli veya izinsiz içerik klonlama yöntemiyle. Regex işlemleri aşırı bir populeriteye ulaşmıştır.

Düzenli ifadeler(İngilizce kısaltması regexp, regex), hesaplama alanında belirli yazım kurallarına göre düzenlenmiş, bir dizge (yazı karakteri) setini tanımlayan veya onunla uyuşan dizgelerdir. Düzenli ifadeler birçok metin düzenleyici, arama araçları ve metin tabanlı belirli desenleri idare etme araçları tarafından kullanılır. Birçok programlama dili dizgeleri idare etmek için düzenli ifadeleri destekler. Örneğin Perl ve Tcl direk kendi yazım kurallarına gömülü, güçlü düzenli ifadelere sahiptir. Unix dağıtımları tarafından sağlanan araçlar seti(düzenleyici sed ve filtreleyici grep de dahil olmak üzere) düzenli ifadeler kavramının tanınırlığını ilk arttıranlardandı.

Temel Kavramlar[değiştir | kaynağı değiştir]

Bir düzenli ifade, çoğunlukla desen olarak geçen, dizgeler seti tanımlayan bir ifadedir. Genellikle tüm elemanları listelemeden setin kısa bir tanımını vermek için kullanılırlar. Örneğin Handel, Händel, ve Haendel dizgelerini içeren bir set "H(ä|ae?)ndel" deseni ile tanımlanabilir(ya da desen 3 dizgenin her biri ile eşleşir(matches) de denebilir). Çoğu biçimci yaklaşımda eğer özel bir set ile uyuşan herangi bir düzenli ifade varsa buna benzer sonsuz sayıda ifade vardır. Çoğu biçimci yaklaşım düzenli ifadeleri oluşturmak için takip eden işlemleri sağlar.

Seçenekleme
Dikey bir çizgi seçenekleri ayırır. Örneğin "gr(a|e)y" olarak kısaltılabilecek olan "gray|grey" "gray" ya da "grey" ile eşleşir.
Gruplama
Parantezler işleçlerin(operatör) alan ve önceliklerini tanımlamak için kullanılır. Örneğin "gray|grey" ve "gr(a|e)y" değişik desenlerdir, ama her ikisi de gray ve grey`i içeren kümeyi tanımlar.
Niceleme
Bir karakter ya da grubun ardından gelen niceleyici öncesindeki ifadenin kaç kez görülebileceğini belirtir. En temel niceleyiciler ?, * ve +`dır.:
?
Soru işareti öncesindeki ifadenin 0 veya 1 kez geçtiğini gösterir. Örneğin "colou?r", colour ve color`un her ikisi ile de eşleşir.
*
Asteriks, öncesindeki ifadenin 0, 1 veya herhangi bir sayıda olabileceğini gösterir. Örneğin "go*gle, ggle, gogle, google, gooogle...vb ile eşleşir.
+
Artı işareti öncesindeki ifadenin en az bir kez geçtiğini gösterir. Örneğin "go+gle", gogle, google, gooogle, vb ile eşleşir (ama ggle ile eşleşmez).

Bu yapılar, tıpkı sayılar ve +, -, *, / gibi işleçler ile cebirsel ifadeler oluşturulabileceği gibi rasgele karmaşık ifadeler yaratmak için birleştirilebilir.

Kaynakça[değiştir | kaynağı değiştir]

Dış bağlantılar[değiştir | kaynağı değiştir]