Κανονική έκφραση

Από testwiki
Μετάβαση στην πλοήγηση Πήδηση στην αναζήτηση

Πρότυπο:Χωρίς παραπομπές

Οι κανονικές εκφράσεις ή κανονικές παραστάσεις (regular expressions, regexp ή regex) χρησιμοποιούνται για την περιγραφή γλωσσών με απλά σύμβολα, το και συνδυασμούς που προκύπτουν με εφαρμογή ένωσης (), του αστεριού Κλέινι (Kleene Star) ( *) ή και παρενθέσεων.

Ορισμός

Κανονικές εκφράσεις επί του Σ* ορίζονται ως όλες οι συμβολοσειρές (strings) επί του Σ  {(, ), *, } που σχηματίζονται ακολούθως:

  1. Το κενό και κάθε στοιχείο του Σ είναι κανονική έκφραση.
  2. Αν a και b είναι κανονικές εκφράσεις τότε και η παράθεσή τους (concatenation), ab, είναι κανονική έκφραση.
  3. Αν a και b είναι κανονικές εκφράσεις τότε και η ένωσή τους (union), ab, είναι κανονική έκραση.
  4. Αν a είναι κανονική έκφραση τότε και η a* είναι κανονική έκφραση.
  5. Καμία άλλη στοιχειοσειρά δεν είναι κανονική έκφραση εκτός αν ικανοποιεί τους κανόνες 1 εως 4.

όπου


Σε ορισμένα βιβλία η πράξη της ένωσης απαντάται και ως | ή + .

Παραδείγματα

Με αλφάβητο το Σ={a, b} με την κανονική έκφραση (a*b*)*(abba) (a*b*)* περιγράφονται όλες οι στοιχειοσειρές που περιέχουν την abba.

Με αλφάβητο το Σ={a, b, c} με την κανονική έκφραση (abc) (abc) (abc) περιγράφονται όλες οι γραμματοσειρές που σχηματίζονται με σύμβολα του Σ και έχουν μήκος 3.

Βιβλιογραφία

  • H.R. Lewis, C.H. Papadimitriou, Elements of the Theory of Computation, Prentice Hall, 2nd Edition

Εξωτερικοί σύνδεσμοι