DÜZENLİ İFADELER Regular Expressions.

Slides:



Advertisements
Benzer bir sunumlar
Selçuk Üniversitesi’nin Bilişime Gönül Veren Gençleri
Advertisements

ERÜNAL SOSYAL BİLİMLER LİSESİ
JavaScript Birinci Hafta.
OPERATÖRLER Programlama dillerinde tanımlanmış sabit ve değişkenler üzerinde işlemler yapmayı sağlayan karakter ya da karakter topluluklarına operatör.
KLAVYE KULLANIMI.
WORD ÖZET WORD’ü başlatmak için; Görev Çubuğu’ndan Başlat + Programlar + Word Yeni paragrafa başlarken ENTER tuşu kullanılır.
Ders İçeriği Bağlantılı Liste İki Yönlü Bağlantılı Liste
Saymanın Temel Prensipleri
4 Kontrol Yapıları: 1.Bölüm.
ÖĞRENME FAALİYETİ 3. PARAGRAF DÜZENLEME.
TBF Genel Matematik I DERS – 1 : Sayı Kümeleri ve Koordinatlar
Yapısal Program Geliştirme – if, if-else
Derleyici Araçları FLEX & BISON
Sonlu Durum Makinesi M=(S, I, O, f, g, s0) S:durumlar kümesi
While Döngüsü Tekrarlama deyimidir. Bir küme ya da deyim while kullanılarak bir çok kez yinelenebilir. Yinelenmesi için koşul sınaması döngüye girilmeden.
6. HAFTA
Görsel C# ile Windows Programlama
Formüller Mustafa AÇIKKAR.
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
FONKSİYONLAR.
DEĞİŞKENLER VE VERİ TİPLERİ
Bağlama Duyarlı Diller
Derleyici Teorisine Giriş
DÜZENLİ İFADELER Regular Expressions Edip Serdar GÜNER.
DÜZENLİ GRAMERLER Yılmaz Kılıçaslan.
Listeleme Etiketleri.
TEMEL KURAM VE AÇMAZLARIYLA BİLGİSAYAR BİLİMİ
BAĞLAMDAN BAĞIMSIZ GRAMERLER ÖZYİNELEMELİ GEÇİŞ AĞLARI (Chomsky Hiyerarşisi: Tip 2) Yılmaz Kılıçaslan.
TEMEL KURAM VE AÇMAZLARIYLA BİLGİSAYAR BİLİMİ
Arama Kuralları Türkçe‘ye özgü karakterler (ğ, ş, ç, ı, İ, ö, ü) yerine, bunlara en yakın harf karakterleri (g, s, c, i, I, o, u) kullanılmalıdır. Taramada.
BAĞLAMA DUYARLI GRAMERLER
BAĞLAMA DUYARLI GRAMERLER
İnternet Programlama - 2
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 8.  Tamsayı Değerler (Integer) Tamsayılar, 10 tabanlı (decimal), 8 tabanlı (octal) veya 16 tabanlı (hexadecimal)
ÖNERMELER MANTIĞI Yılmaz KILIÇASLAN.
MANTIK BİLİMİNE GİRİŞ VE ÖNERMELER MANTIĞI Yılmaz KILIÇASLAN.
Otomata Teorisinin Uygulama Alanları
KÜMELER.
ÖNERMELER MANTIĞI Yılmaz KILIÇASLAN. Önermeler Mantığı - Bağlaçlar Yalnızca doğruluk değerleri üzerinden fonksiyonel olarak tanımlanabilen bağlaçlar ve.
MANTIK BİLİMİNE GİRİŞ VE ÖNERMELER MANTIĞI Yılmaz KILIÇASLAN.
KÜMELER KAZANIM:Bu konu 6. sınıf konusu olup bir kümeyi modelleri ile belirler, farklı temsil biçimleri ile gösterir.
KELİME İŞLEMCİ PROGRAMI
Kim korkar matematikten?
flex Sözcüksel Analiz İçin Bir Araç
Biçimsel Diller ve Soyut Makineler
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
BISON (YACC) (Yet Another Compiler Compiler)
BMS-301 Kabuk Programlama Güz 2015 (5. Sunu) (Yrd. Doç. Dr. Deniz Dal)
NFA-, NFA, DFA dönüşümü 1.
Adım Adım Algoritma.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
Biçimsel Diller ve Soyut Makineler
Regüler İfadeler ve Regüler Diller
VB’DE OPERATÖRLER. VB’DE ARİTMETİK İŞLEMLERİN BAZILARI OPERATÖRLERLE YAPILIRKEN BAZILARI DA FONKSİYONLARLA YAPILIR. VB’DE KULLANILAN ARİTMETİK VE LOJİK.
Hesaplama Tabloları (MS For Mac Excel -2) Öğr.Gör. Mehmet Akif Barış.
BİLGİSAYAR PROGRAMLAMA DERSİ
7. HAFTA.
Formel Diller ve Soyut Makineler
Formel Diller ve Soyut Makineler
Formel Diller ve Soyut Makineler
Formel Diller ve Soyut Makineler
CEBİRSEL İFADELERİ ÇARPANLARINA AYIRMA
Turing Machines Turing Makineleri.
Formel Diller ve Soyut Makineler
Programlama Dillerinin Temel Elemanları
Bilgisayar Programlama
AÇILAR Açı Nedir? Aynı doğru üzerinde olmayan, başlangıç noktaları ortak olan iki ışının birleşim kümesine AÇI denir. Açı.
Bilgisayar Bilimi Problem Çözme Süreci-2.
Veri Tabanı Yönetim Sistemleri I
Yıldız Teknik Üniversitesi-Bilgisayar Müh. Bölümü
Sunum transkripti:

DÜZENLİ İFADELER Regular Expressions

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

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

Sonlu Durum Otomatları (FSAs) e ! m e e q0 q1 q2 q3 q4 ! m e e q0 q1 q2 q3 q4 ε

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 L1 ve L2 dilleri düzenli diller ise: L1 * L2 = { xy | x Є L1, y Є L2} ekleme işlemi (concatenation), L1 U L2 birleşim işlemi (union, disjunction, alternation), L1* ise Kleene sonlandırması (Kleene closure) ile tanımlanan diller de düzenli dillerdir.

Düzenli Diller (devam) b) c)

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.

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) …

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.’

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 /[1234567890]/  herhangi bir rakam /[A-Z]/  Herhangi bir büyük harf /[a-z]/  Herhangi bir küçük harf /[0-9]/  Herhangi bir rakam

* 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

? 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

| (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

İ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.

^ (caret) ve $ ^ karakteri 3 farklı şekilde kullanılabilir. Aralık için olumsuzlama /[^A-Z]/  büyük harf harici karakter /[^Ss]/  S veya s harici karakter /[^\.]/  nokta harici karakter Satır başına bağlama /^Asya/  satır başında ‘Asya‘ olan durum 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

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

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

Ö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

xkcd.com