İçeriğe atla

Düzenli ifade

LibreOffice'den Bul ve Değiştir iletişim kutusu

Düzenli ifadeler veya kurallı ifadeler, bilgisayar bilimlerinde 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üzenli ifadeler, bir biçimsel dil kullanarak yazılır ve bir düzenli ifade işleyici tarafından yorumlanır. Bir düzenli ifade işleyicisi ya ayrıştırıcı olarak hizmet eden ya da metni inceleyip verilen tarife uygun kısımlarını belirleyen bir programdır.

Aşağıda bir düzenli 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üzenli 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ı yardımı ile otomatik üretilen bir programla yapılabilir.

Kullanım alanları

Çoğu cümle arasında iki boşluk kullanılan iki yana yaslanmış metnin resmi. Cümleler arasındaki boşluk, "nehir" etkisini göstermek için sarı renkle vurgulanmıştır.

Düzenli ifadeler pek çok farklı metin işleme işlerinde ve daha genel olarak verinin sadece metin olmadığı katar işleme işlerinde kullanılmaktadır. Yaygın uygulamaları veri doğrulama, veri ayıklama (özellikle ağ ayıklama), veri dönüştürme, basit (metin) ayrıştırma, sözdizimi vurgulama sistemlerinin hazırlanması ve daha pek çok diğer görevlerdir.

Internet arama motorlarında düzenli ifade kullanımı faydalı olabilecek olsa da, bütün veritabanı üzerinde çalıştırılması, düzenli ifadenin karmaşıklığına ve tasarımına bağlı olarak çok fazla işlemci gücü gerektirebilmektedir. Sistem yöneticileri veritabanlarında düzenli ifadeler tabanlı sorgular çalıştırabilseler de, çoğu arama motoru düzenli ifade desteğini kullanıcılarına sağlamaz. Bu konuda önemli istisnalar Google Code Search, Exalead gibi özelleşmiş arama motorlarıdı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 direkt 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 artıranlardandı.

Temel Kavramlar

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 herhangi 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. Örn: "colou?r", colour ve color'un her ikisi ile de eşleşir.

*

Asteriks, öncesindeki ifadenin 0, 1 veya daha fazla bir sayıda olabileceğini gösterir. Örn: "go*gle, ggle, gogle, google, gooogle...vb ile eşleşir.

+

Artı işareti öncesindeki ifadenin en az 1 kez geçtiğini gösterir. Ör: "go+gle", gogle, google, gooogle ile eşleşir amaggle ile eşleşmez.

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

Düzenli İfadeler Listesi

Karakter Sonuç/Kullanım
Herhangi bir karakter Herhangi bir karakter belirlenmeksizin bir karakteri temsil eder.
. Sayfa sonu veya paragraf sonu haricindeki herhangi bir karakteri temsil eder. Örneğin, "tak.im" arama terimi "takvim" ve "taksim" sonuçlarının ikisiyle de döner.
^ Eğer terim sadece paragraf başında ise aranılan terimi bulur. Boş alanlar veya karaktere tutturulmuş çerçeveler gibi paragraf başındaki özel nesneler dikkate alınmaz. Örnek: "^Selma".
$ Eğer terim sadece paragraf sonunda ise aranılan terimi bulur. boş alanlar veya karaktere tutturulmuş çerçeveler gibi paragraf başındaki özel nesneler dikkate alınmaz. Örnek: "Selma$".

$ kendi başına bir paragrafın sonu ile eşleşir. Bu şekilde paragraf sonlarını bulup değişltirmek mümkün hale gelir..

* "*" karakterinin önündeki 0 veya daha fazla karakteri bulur. Örneğin, "Ab*c" finds "Ac", "Abc", "Abbc", "Abbbc" ve buna benzer.
+ "+" karakterinin önündeki 1 veya daha fazla karakteri bulur. Örneğin, "AX.+4" arama terimi, "AXx4" veya "AXxyz4"metnini bulur, "AX4" metni bulunmaz.

Paragraftaki arama dizisine uygun en uzun metin daima bulunur. Eğer paragraf "AX 4 AX4" metnini içeriyorsa, bu pasaj vurgulanır. "AX 4" kısımı değil.

? "?" karakterinin önündeki 0 veya daha fazla karakteri bulur. Örneğin, "Metal?" arama terimi, "Metal" ve "Meta" sonuçlarını bulur. "x(ab|c)?y" ifadesi "xy", "xaby", or "xcy" metinlerini bulur.
\ Arama, "\" sonrasında girilen özel karakteri bir düzenli ifade olarak değil de bir normal karakter olarak işler (\n, \t, \> ve \< katışımları dışında). Örneğin, "ağaç\.", "ağaç." ifadesini bulurken "ağaçlar" ya da "ağaçla" ifadelerini bulmaz.
\n Shift+Enter tuş kombinasyonu ile eklenmiş satır kesmesini temsil eder. Satır kesmesini, paragraf kesmesi olarak değiştirmek için Aranan ve Yeni değer kutucuklarına \n'i girin ve ardından bir arama ve değiştirme gerçekleştirin.

İçin ara metin kutusu içindeki \n, Shift+Enter tuşları ile eklenmiş satır sonuna karşılık gelir.

İle yerdeğiştir metin kutusundaki \n, Enter veya Return tuşları ile girilebilen paragraf sonlarına karşılık gelir.

\t Bir tab (sekme) karakterini gösterir. Bu ifadeyi ayrıca Yeni değer kutusunda da kullanabilirsiniz.
\b Bir kelime sınırını eşleştir. Örneğin, "\bbook" ifadesi "bookmark" ifadesini bulur ancak "checkbook" ifadesini bulmaz. Oysa "book\" ifadesi "checkbook" ifadesini bulur ancak "bookmark" ifadesini bulmaz. Aranan kelime "book" her iki aramada da bulunur.
^$ Boş paragrafları arar.
^. Bir paragraf başındaki ilk karakteri bulur.
& veya $0 Aranankutusundaki arama ölçütüne göre bulunan metine, Değişiklik yaptığınız zaman, Yeni değer metin kutusunda belirlediğiniz metni ekler.

Örneğin, eğer Aranan kutusunda "pencere" metnini girer ve Yeni değer kutusuna "& çerçevesi" metnini girerseniz, "pencere" metni "pencere çerçevesi" metni ile değiştirilecektir.

Ayrıca, arama ölçütleriyle bulduğunuz metinlerin, Öznitelikleri'ni değiştirmek ya da bunları farklı bir Biçim ile kullanmak için de Yeni değer kutusuna bir "&" işareti girebilirsiniz.

[abc123] Köşeli ayraçlar arasındaki içindeki karakterleri bulur. Örneğin, s[eü]t ile, "set" ve "süt" sözcüklerini bulabilirsiniz.
[a-e] Başlangıç ve bitiş karakterlerini de içerecek şekilde, a ve e arasındaki karakterleri simgeler

Karakterler kod numaralarına göre sıralanır.

[a-eh-x] a-e ve h-x arasındaki karakterleri bulur.
[^a-s] a ile s karakter aralığı dışındaki tüm karakterleri bulur. Örneğin "a[^a-k]ın" "alın" ve "atın" sözcüğünü bulabilir, ancak "akın" sözcüğünü bulamaz.
\uXXXX

\UXXXXXXXX

Dört basamaklı onaltılık Unicode koda (XXXX) dayalı bir karakteri temsil eder.

Belirsiz karakterler için büyük U ve sekiz tane on altılık basamaklı (XXXXXXXX) ayrı bir çeşidi vardır.

Özel karakterler için belirli sembol yazı tipleri için kodlar kullanılan yazı tipine bağlı olabilir. Kodları, Ekle - Özel Karakter menü komutunu seçerek görüntüleyebilirsiniz.

| "|" öncesindeki ve "|" sonrasındaki terimleri bulur. Örneğin, "bu|şu", "bu" ve "şu" terimlerini bulur.
{2} Başlangıç ayracının önündeki karakterin kaç kez tekrarlanacağını tanımlar. Örneğin, "sa{2}t" "saat" sözcüğünü bulur, ancak "sat" sözcüğünü bulmaz.
{1,2} Başlangıç ayracının önündeki karakterin veya ifadenin en az n kez yinelendiği yerlerde. Örneğin, "10{3,}" "1000", "1000000" metinlerini bulur, ancak "100" bulunmaz.
{1,} Başlangıç ayracının önündeki karakterin veya ifadenin en az n kez yinelendiği yerlerde. Örneğin, "10{3,}" "1000", "1000000" metinlerini bulur, ancak "100" bulunmaz.
() Aranan kutusunda:

Ayraç içindeki karakterleri başvuru olarak tanımlar. Geçerli ifadede ilk başvuruya "\1" ile, ikinci başvuruya "\2" gibi biçimlerde başvuruda bulunabilirsiniz.

Örneğin, metniniz 13487889 sayısını içeriyorsa ve aramanız (8)7\1\1 düzenli ifadesini kullanıyorsa, "8788" sonucu bulunur.

Parantezleri () terimleri gruplamak için kullanabilirsiniz; örneğin "a(bc)?d" ifadesi "ad" veya "abcd" ifadelerini bulacaktır.

Yeni değer kutusunda:

Başvuruları değiştirmek için \ (ters bölü) yerine $ (dolar) kullanın. Bulunan karakter dizisinin tümünü değiştirmek için $0 kullanın.

[:alpha:] Alfabetik karakterleri bulur. [:alpha:]+ alfabetik karakterlerden oluşan metin dizilerini bulur.
[:digit:] Tek basamaklı bir sayı bulur. Birden fazla basamaklı bir sayı bulmak için [:digit:]+ parametresini kullanın.
[:alnum:] Alfanimerik karakterleri ([:alpha:] ve [:digit:]) temsil eder.
[:space:] Boşluk karakterini bulur (sekme karakterleri veya bölünemez boşluk karakterleri bulunmaz).
[:print:] Yazdırılabilir karakterleri bulur.
[:cntrl:] Yazdırılamayan karakterleri bulur.
[:lower:] Seçenekler alanında BÜYÜK/küçük harf duyarlı seçeneği işaretlendiyse, küçük harf karakterleri bulur.
[:upper:] Seçenekler alanında büyük/küçük harf duyarlılığı seçeneği işaretlendiyse, büyük harf karakterleri bulur.

Örnekler

e([:digit:])? -- Sıfır veya bir sayıdan sonra gelen 'e' karakterini bulur. [:digit:] gibi tüm isimlendirilmiş karakter sınıflarının parantezler içine alınması gerektiğini unutmayın.

^([:digit:])$ -- Sadece tek basamaklı satırları ya da hücreleri bulur.

Arama terimlerini karmaşık arama işlemlerini gerçekleştirecek şekilde birleştirebilirsiniz.

Bir paragraf içindeki yalnız üç haneli sayıları bulmak için

^[:digit:]{3}$

^ aramanın paragraf başından başlıyacağı anlamına gelir,

[:digit:] herhangi ondalık hane anlamına gelir,

{3} "rakam" hanelerinin tam olarak üç adet olacağını belirler,

$ eşleştirmenin paragraf sonunda bitmesi gerektiğini belirler.

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">C (programlama dili)</span> programlama dili

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

<span class="mw-page-title-main">C++</span> bir programlama dili

C++, Bjarne Stroustrup tarafından 1979 yılında Bell Laboratuvarları'nda geliştirilmeye başlanmış, C'yi kapsayan ve çok paradigmalı, yaygın olarak kullanılan, genel amaçlı bir programlama dilidir.

Kenneth Lane Thompson Amerikalı bir bilgisayar bilimcisi.Thompson, kariyerinin büyük bir bölümünde orijinal Unix işletim sistemini tasarlayıp uyguladığı Bell Labs'ta çalıştı. Ayrıca C programlama dilinin doğrudan selefi olan B programlama dilini de icat etti. Bununla beraber Plan 9 işletim sisteminin yaratıcılarından ve ilk geliştiricilerinden biriydi. Thompson, 2006'dan beri Go programlama dilini birlikte icat ettiği Google'da çalışmaktadır.

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

<span class="mw-page-title-main">Derleyici</span> kaynak kodunu bilgisayarın işleyebileceği koda dönüştüren program

Derleyici, kaynak kodu makine koduna dönüştüren yazılımdır. Bir programlama dilinin derleyicisi, o programlama dili kullanılarak yazılmış olan kodu hedef işlemci mimarisine göre uygun şekilde makine koduna derler ve genellikle çıktı olarak yürütülebilir dosyanın oluşturulmasını sağlar. Bu eyleme derleme denir. Bir başka ifadeyle derleyici, bir tür yazı işleyicidir; girdi olarak yazı alır ve çıktı olarak yazı verir.

Anlambilim, anlam bilimi, anlam bilgisi ya da semantik, anlamları inceleyen bilimdir. Anlam bilimi felsefî ya da mantıksal ve dilbilimsel olmak üzere iki farklı açıdan ele alınabilir. Felsefî ya da mantıksal yaklaşım, göstergeler ya da kelimeler ile bunların göndergeleri arasındaki bağlantıya ağırlık verir ve adlandırma, düz anlam, yan anlam, doğruluk gibi özellikleri inceler. Dilbilimsel yaklaşım ise zaman içinde anlam değişiklikleri ile dilin yapısı, düşünce ve anlam arasındaki karşılıklı bağlantı vb. konular üstünde durur.

Kolmogorov karmaşıklığı, bilgisayar biliminde, bir metin parçası gibi bir nesneyi tanımlamak için kullanılması gereken bilgi işlemsel kaynakların ölçüsü.

Artı işareti ve eksi işareti, matematiksel semboller olarak kullanılmakta olup, pozitif ve negatif fonksiyonların gösterilmesinde sırasıyla kullanılırlar. Bunun yanı sıra, + toplama işlemi için kullanılır ki bu işlem bir toplam sonucunu üretir, ise çıkarma işlemi için kullanılır ve bir fark sonucunu meydana getirir. Bu işaretlerin kullanımı zamanla, daha az veya daha çok benzer diğer anlamlar kazanmıştır. Plus ve minus, Latincede sırasıyla "daha fazla" ve "daha az" anlamına gelmektedir.

Verilog elektronik sistemleri modellemek için kullanılan bir donanım tanımlama dilidir. Verilog analog, sayısal ve karışık işaretli devrelerin tasarımını, doğrulanmasını ve yürütülmesini değişik düzeylerde desteklemektedir. Verilog dilinin tasarımcıları dilin C programlama diline yakın bir söz dizimine sahip olmasını istemişlerdir. Böylece bu dile yatkın olan mühendislerin dili kolayca kullanmasını amaçlamışlardır. Dil küçük/büyük harf duyarlılığına sahiptir ve temel denetim akışının “if” ve “while” gibi anahtar kelimeleri, C'ye benzemektedir. Verilog birkaç temel yönde C’den farklıdır. Verilog bir blok kodu tanımlamak için kıvrık parantezler yerine Begin/End kullanmaktadır. Verilog 95 ve 2001 işaretçi veya yinelemeli alt yordamlar yapılarına sahip değildir fakat SystemVerilog bu özelliklere sahiptir. Son olarak Donanım Tanımlama Dilleri için çok önemli olan zaman kavramı C dilinde bulunmamaktadır. Verilog geleneksel programlama dilleri gibi basamaklarını tam olarak ardışık bir şekilde yürütmez. Verilog tasarımı modüller arasında bir hiyerarşi bulundurur. Modüller bir takım giriş, çıkış ve çift yönlü portlar şeklinde tanımlanır. Bir modül içinde yazmaç ve kablo listesi bulunur. Eş zamanlı ve ardışık ifadeler modülün davranışını; portların, kabloların ve yazmaçların arasındaki ilişki ile tanımlar. Ardışık ifadeler bir begin/end bloğuna konur ve blokla beraber ardışık olarak yürütülür. Tüm eş zamanlı ifadeler ve begin/end blokları koşut olarak yürütülür. Bir modül aynı zamanda diğer bir modülün bir veya daha çok örneğini içererek bir alt-davranışı belirtebilir. Eğer tasarımdaki modüller sadece sentezlenebilir ifadeler içeriyorsa bu tasarımın donanımda gerçekleştirilecek temel bileşenlerini ve bağlantılarını içeren netlist, yazılım sayesinde sentezlenebilir. Elde edilen bu netlist bir tümleşik devreyi tanımlamak amacıyla kullanılabilir.

Çeviribilim ya da Çeviri bilimi, yazılı ve sözlü çevirinin kuram, betimleme ve uygulamasını konu alan beşeri bilim dalıdır. Sahalar arası bir çalışma alanı olarak çeviribilim, çeviriye destek olan çeşitli sahalardan katkı alır. Bunların arasında metin dilbilim, toplumbilim, tarih, karşılaştırmalı edebiyat, felsefe, filoloji, göstergebilim, edebiyat gibi bilim dalları bulunur. Batı dillerinde “translation studies” (İngilizce), “Translationswissenschaft” (Almanca) ve “traductologie” (Fransızca) gibi adlarla anılır.

Bilgisayar biliminde, Genişletilmiş Backus–Naur formu (EBNF) bağlamdan bağımsız dilbilgisini ifade etmek için kullanılan bir notasyondur. Başka bir ifadeyle, bilgisayar programlama dillerini ve biçimsel dilleri tanımlamanın bir yoludur. Backus–Naur formu (BNF) notasyonunu temel alır.

expr çeşitli ifadeleri hesaplayan ve uygun değeri ekrana basan bir Unix komut satırı aracıdır.

Bilgisayar terminolojisindeki dilbilgisi denetleyicisi yazılan metnin dilbilgisel doğruluğunu kontrol eden bir program veya bir programın alt parçasıdır. Dilbilgisi denetleyicileri çoğunlukla kelime işlemci gibi büyük bir programın özelliği olarak gerçekleştirilir. Bununla birlikte tek başına çalışan ve düzenlenebilir metinler kullanan programlar içinden aktifleştirilebilen uygulamalar da vardır.

Seed7 Thomas Mertes tarafından geliştirilmiş olan genişletilebilir ve genel amaçlı bir programlama dilidir. Sözdizim kuralları açısından C'ye ve Pascal'a çok benzer.

<span class="mw-page-title-main">Ayrıştırıcı (yazılım)</span>

Ayrıştırıcı, girdi verilerini alır ve girdinin yapısal bir temsilini vererek, süreçte doğru sözdizimini kontrol eden bir veri yapısı oluşturan bir yazılım bileşenidir. Ayrıştırma öncesinde veya sonrasında başka adımlar izlenebilir veya bunlar tek bir adımda birleştirilebilir. Ayrıştırıcı, genelde girilen karakter dizisinden belirteçler oluşturan ayrı bir sözcük tabanlı analiz motorunu takip eder. Ayrıştırıcılar elle programlanabilir veya bir ayrıştırıcı üreteci tarafından otomatik olarak veya yarı otomatik olarak oluşturulabilir. Ayrıştırma, biçimlendirilmiş çıktı üretimlerini tek bir şablonda tamamlama görevi görür. Bunlar, farklı etki alanlarına uygulanabilir, ancak bir derleyicinin girdi ve çıktı aşamaları gibi genellikle bir arada sunulur.

Programlamada, beyaz boşluk tipografide yatay veya dikey alanı temsil eden herhangi bir karakter veya karakter dizisidir. Oluşturulduğunda, bir boşluk karakteri görünür bir işarete karşılık gelmez, ancak genellikle bir sayfadaki bir alanı kaplar. Örneğin, ortak boşluk sembolü U+0020   SPACE, Batı'da kelime bölücü olarak kullanılan betik metinde boş bir noktalama işareti temsil eder.

Bilgisayar biliminde, bildirimsel programlama bir programlama paradigmasıdır. —bilgisayar programlarının yapısını ve öğelerini oluşturma stili— bir hesaplamanın mantığını kontrol akışını tanımlamadan ifade eder.

Bilgisayar biliminde dizi programlama, işlemlerin bir kerede tüm değerler kümesine uygulanmasına izin veren çözümleri ifade eder. Bu tür çözümler, bilimsel ve mühendislik ortamlarında yaygın olarak kullanılmaktadır.

<span class="mw-page-title-main">Düz metin</span> yalnızca okunabilir materyalin biçimlendirilmemiş karakterlerinden oluşan bilgisayar verileri

Bilgi işlemde, düz metin yalnızca karakterlerden oluşan okunabilir materyali temsil eden ancak grafiksel gösterimini veya diğer nesneleri temsil etmeyen veriler için kullanılan geniş/serbest bir terimdir. Ayrıca metnin basit düzenini etkileyen boşluklar, satır sonları veya sekme karakterleri gibi sınırlı sayıda "boşluk" karakteri de içerebilir. Düz metin, stil bilgilerinin dahil edildiği biçimlendirilmiş metinden; paragraflar, bölümler ve benzerleri gibi belgenin yapısal kısımlarının tanımlandığı yapılandırılmış metinden; ve bazı kısımların ikili nesneler olarak yorumlanması gereken ikili dosyalardan farklıdır.

YAML ; insan tarafından okunabilir Programlama dilidir. Genellikle konfigürasyon dosyaları için ve verilerin saklandığı veya iletildiği uygulamalarda kullanılır. YAML, Genişletilebilir İşaretleme Dili (XML) gibi birçok iletişim uygulamasını hedefler ancak Standart Genelleştirilmiş İşaretleme Dili (SGML) ile bilinçli olarak farklı bir minimal sözdizimi kullanır. Yerleşim belirlemek için Python tarzı girinti kullanır ve çoğu dize değeri etrafında alıntı işareti gerektirmez ve aynı dosyada JSON tarzı ​[...]​ ve } de desteklemektedir.