Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

DÜZENLİ İFADELER Regular Expressions. Chomsky Hiyerarşisi Düzenli Diller (Regular) Bağlam – Bağımsız Diller (Context-Free) Bağlam – Bağımlı Diller (Context.

Benzer bir sunumlar


... konulu sunumlar: "DÜZENLİ İFADELER Regular Expressions. Chomsky Hiyerarşisi Düzenli Diller (Regular) Bağlam – Bağımsız Diller (Context-Free) Bağlam – Bağımlı Diller (Context."— Sunum transkripti:

1 DÜZENLİ İFADELER Regular Expressions

2 Chomsky Hiyerarşisi Düzenli Diller (Regular) Bağlam – Bağımsız Diller (Context-Free) Bağlam – Bağımlı Diller (Context - Sensitive) Özyinelemeli Sayılabilir Diller (Recursively Enumerable) Karmaşıklık 0123

3 Tip – 3 (Type - 3) Gramerler Düzenli İfadeler Sonlu Durum Otomatları Düzenli Diller

4 Sonlu Durum Otomatları (FSAs) q0q0 q1q1 q2q2 q3q3 q4q4 mee e ! q0q0 q1q1 q2q2 q3q3 q4q4 mee ! ε

5 Düzenli Diller Σ sonlu bir alfabeyi, ∅ boş kümeyi, ε, {ε} kümesini göstermek üzere; Σ üzerinde tanımlanabilen düzenli dillerin formel tanımı şöyledir: – ∅ düzenli bir dildir. –, { a } düzenli bir dildir. – Eğer L 1 ve L 2 dilleri düzenli diller ise: a)L 1 * L 2 = { xy | x Є L 1, y Є L 2 } ekleme işlemi (concatenation), b)L 1 U L 2 birleşim işlemi (union, disjunction, alternation), c)L 1 * ise Kleene sonlandırması (Kleene closure) ile tanımlanan diller de düzenli dillerdir.

6 Düzenli Diller (devam) a) b) c)

7 Düzenli İfadeler Karakter dizileri içinde belirli örüntüleri (pattern) aramayı sağlayan bir dildir. İlk olarak 1956 yılında Stephen C. Kleene tarafından formel bir model olarak sunulmuştur. Formel tanım: Karakter katarı kümelerinin cebirsel olarak tanımlanmasını sağlayan bir gösterimdir. Sonlu durum otomatları ile tanınan dilleri ifade edebilme gücüne sahiptirler. Herhangi bir düzenli ifade doğrudan NFSA’ya, buradan da DFSA’ya dönüştürülebilir. NFSA (backtracking), DFSA veya melez yöntemler kullanılarak gerçekleştirimi yapılabilir.

8 Kullanım Alanları Arama motorları Bilgi edinim (Information retrieval) Kelime işleme (Word processing) Derlem (corpus) içinde frekans hesaplama Veri doğrulama (Data validation) Sözdizim belirginleştirme (Syntax highlighting) …

9 Basit Düzenli İfadeler En basit düzenli ifadeler karakterlerin sıralı biçimde dizilmesiyle oluşur. Düzenli ifadeler büyük – küçük harf duyarlıdır. /okula/  ‘Ali okula gelmedi.’ /okul/  ‘Ali okula gelmedi.’ /a/  ‘Ali okula gelmedi.’ /okula gelmedi/  ‘Ali okula gelmedi.’

10 Karakter Seçimi ve Aralıklar Kare parantezler ‘[]’ arasına yazılan karakterler ‘veya’ (disjunction) işlemine tabi olurlar. ‘-’ işareti ile kare parantez içinde aralık (range) belirtilebilir. /[Bb]ahçe/  Bahçe veya bahçe /[abc]/  a, b veya c /[ ]/  herhangi bir rakam /[A-Z]/  Herhangi bir büyük harf /[a-z]/  Herhangi bir küçük harf /[0-9]/  Herhangi bir rakam

11 * ve + (Kleene star and plus) ‘*’ karakteri kendinden önce gelen karakterin 0 veya daha fazla kere ardışık olarak tekrarlandığını belirtir. /ab*c/  ac, abc, abbc, abbbc, … /[0-9][0-9]*/  bir veya daha fazla sayıda ardışık rakam ‘+’ karakteri kendinden önce gelen karakterin 1 veya daha fazla kere ardışık olarak tekrarlandığını belirtir. /[0-9]+/  bir veya daha fazla sayıda ardışık rakam

12 ? ve. ‘?’ karakteri kendinden önce gelen karakterin seçimlik olduğunu belirtir. /evleri?/  evler veya evleri /colou?r/  color veya colour ‘.’ karakteri tekil herhangi bir karakterin yerine geçebilir. /dök.e/  dökme veya dövme gibi

13 | (pipe) Bu karakter örüntüler arasında ‘veya’ işlevi görür. /elma|portakal/  elma veya portakal ‘()’ şeklindeki normal parantezler içine alınan ifadeler tek bir karaktermiş gibi işlenir. /yüz(er|erler)/  yüzer veya yüzerler

14 İfade Sınırları \b özel karakteri, kullanıldığı yere göre, aranan ifadenin önünde veya arkasında sınırlayıcı (boşluk gibi) karakterleri sınır olarak kabul eder. /\beli\b/  önünde ve arkasında boşluk olan ‘eli’ ifadesini bulur \B karakteri sınırlandırma olmayan durumu belirtir.

15 ^ (caret) ve $ ^ karakteri 3 farklı şekilde kullanılabilir. 1)Aralık için olumsuzlama /[^A-Z]/  büyük harf harici karakter /[^Ss]/  S veya s harici karakter /[^\.]/  nokta harici karakter 2)Satır başına bağlama /^Asya/  satır başında ‘Asya‘ olan durum 3)Normal karakter olarak kullanım /[e^]/  e veya ^ /a^b/  a^b örüntüsü $ karakteri ise normal karakter olarak kullanımı haricinde satır sonuna bağlama içinde kullanılır. /gittiler\.$/  satır sonunda ‘gittiler’ olan durum

16 Sayaçlar Herhangi bir karakterin ne miktarda tekrarlanabileceğini belirten ifadelerdir. {n}  kendinden önceki karakter n defa ardışık olmalıdır {n, m}  kendinden önceki karakter n ile m aralığında ardışık olmalıdır {n,}  kendinden önceki karakter en az n kadar ardışık olmalıdır

17 Operatör Öncelik Hiyerarşisi En yüksekten en düşük öncelikli operatöre doğru sıralama şu şekildedir: 1.Parantez  () 2.Sayaçlar  * + ? {} 3.Seriler veya bağlayıcılar  evler ^Yarın gelecek$ 4.Veya  | (pipe)

18 Özel Operatörler \d  herhangi bir rakam \D  rakam olmayan bir karakter \w  alfanümerik veya boşluk karakteri \W  alfanümerik olmayan karakter \s  boşluk \S  boşluk olmayan karakter \.  nokta karakteri \*  * (asterisk) karakteri \?  ? Karakteri \n  newline karakteri \t  tab karakteri

19 xkcd.com


"DÜZENLİ İFADELER Regular Expressions. Chomsky Hiyerarşisi Düzenli Diller (Regular) Bağlam – Bağımsız Diller (Context-Free) Bağlam – Bağımlı Diller (Context." indir ppt

Benzer bir sunumlar


Google Reklamları