Regular Expressions. Regular Expressions - γενικά  Βασική ιδέα: έχουμε ένα pattern και ένα κείμενο εισόδου. Εφαρμόζουμε το pattern στο κείμενο και μπορούμε:

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ
Advertisements

Βασικές Έννοιες Προγραμματισμού
Support.ebsco.com Εκπαιδευτικό μάθημα για τη δημιουργία τοπικής συλλογής.
Κλάσματα.
Να περιγράψετε τους 2 τρόπους οργάνωσης Ιστοσελίδων
5η Συνάντηση Εκπαιδευτικών Πληροφορικής στη Δυτική Μακεδονία Πτολεμαΐδα, 29 Σεπτ 2005 Δημιουργία Δυναμικών Ιστοσελίδων με PHP και Dreamweaver MX Στυλιάδης.
Σχεδιαστικά εργαλεία Διαχείριση σελίδων Βιβλιοθήκες αντικειμένων Διαχείριση αντικειμένων Επιφάνεια ψηφιακής μελάνης Πληκτρολόγιο οθόνης ΟΦΕΛΗ Αναγνώριση.
Ασκήσεις Συνδυαστικής
Σύνταξη CELL(Είδος πληροφορίας; Κελί)
Βάσεις Δεδομένων Μάθημα 3.
1. 1.Λειτουργία Find (Eύρεση)  Για να εντοπίσουμε μια λέξη ή μια φράση μπορούμε να χρησιμοποιήσουμε το εργαλείο Find.  Πατούμε το κουμπί ή CTRL+F 
Προγραμματισμός Ι Παράδειγμα: Παράδειγμα:Να γραφεί πρόγραμμα που να δέχεται ως είσοδο κείμενο, να απαριθμεί τις εμφανίσεις των ψηφίων 0-9, τα λευκά διαστήματα.
Microsoft Excel 4.2 Κελιά Κίκα Χρυσοστόμου.
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
Φροντηστήριο Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Eργαλεία.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Η Γραφή.
Γλωσσική Τεχνολογία String Handling – Regular Expressions.
Περισσότερες Ασκήσεις Συνδυαστικής
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
Συνάρτηση SEARCH Σύνταξη SΕΑRCΗ(Κείμενο προς εύρεση; Μέσα στο κείμενο; Θέση έναρξης) Κείμενο προς εύρεσηΕίναι το μέρος του κειμένου που θέλουμε να βρούμε.
ΤΗΣ ΦΟΙΤΗΤΡΙΑΣ : ΤΣΑΛΤΑ ΑΝΑΣΤΑΣΙΑ Α.Μ. : 30920
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Hot Potatoes. Είναι java scripts που δημιουργούνται με έναν ιδιαίτερα φιλικό τρόπο. Το Hot Potatoes (καυτές πατάτες) είναι πρόγραμμα ανοιχτού λογισμικού.
Slide 1/42 ΗΥ – 340 Γλώσσες και Μεταφραστές Φροντιστήριο Εισαγωγή στο Flex.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Εισαγωγή στο Linux/Unix Εργαστηριακή Άσκηση 3 Η/Υ 1 ο έτος Γρ. Αμούτζιας.
22/4/2015B' ΤΑΞΗ ΨΗΦΙΑΚΟΣ ΚΟΣΜΟΣ 21 Κωδικοποίηση.
Διαδίκτυο Κίκα Χρυσοστόμου. Υπάρχει η δυνατότητα ενσωμάτωσης μιας φόρμας σε μια ιστοσελίδα. Μπορούμε να συμπληρώσουμε κάποια στοιχεία και να τα υποβάλουμε.
1Κεφάλαιο 4 Κανόνες Σύνταξης HTML Όλες οι ετικέτες εσωκλείονται μεταξύ των χαρακτήρων “ “. Κάθε τι που βρίσκεται μεταξύ των χαρακτήρων “ ”, αποτελεί σχόλιο.
Ο πολλαπλασιασμός με το 11 πολύ απλά και γρήγορα Επιμέλεια: Κων/νος Κλουβάτος (από το icks.html#20x20«)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 4: Συμβολοσειρές και Δομές Ελέγχου. Διδάσκων: Νικόλαος Θ Λιόλιος,
Βασικά στοιχεία της Java
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
Πανεπιστήμιο Βόλου Παιδαγωγικό Τμήμα Δημοτικής Εκπαίδευσης «Αρχαία Ελληνική και Βυζαντινή Ιστορία και Πολιτισμός» Μάθημα 3 ο (Μυκηναϊκός Πολιτισμός – Γεωμετρική.
Βασικές έννοιες προγραμματισμού Κεφάλαιο 7 ο. Βασικές έννοιες προγραμματισμού Αλφάβητο και τύποι δεδομένων Σταθερές και μεταβλητές Τελεστές, συναρτήσεις.
Δημιουργοί ΝΑΤΣΙΟΥΛΗΣ ΓΕΩΡΓΙΟΣ ΠΑΠΑΣ ΑΘΑΝΑΣΙΟΣ ΤΟΣΙΟΣ ΧΡΗΣΤΟΣ
Δυναμικός Κατακερματισμός
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΠΡΟΧΩΡΗΜΕΝΕΣ ΤΕΧΝΙΚΕΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Λήμμα άντλησης Πως αποφασίζουμε αποδεικνύουμε ότι μία γλώσσα δεν είναι κανονική; Δυσκολότερο από την απόδειξη ότι μια γλώσσα είναι κανονική. Γενικότερο.
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Ενότητα 9 : Κανονικές Εκφράσεις Αλέξανδρος Τζάλλας
Hot Potatoes.
Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
Εισαγωγή στην Πληροφορική μεγάλου όγκου δεδομένων
Πανεπιστήμιο Βόλου Παιδαγωγικό Τμήμα Δημοτικής Εκπαίδευσης
Κεφάλαιο 10 Streams.
Σύνταξη ΜΕDIAN(Αριθμός1:Αριθμός2; ...)
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Πληροφορική Β΄ Γυμνασιου Κεφάλαιο 3, 3.4
ΑΝΑΠΑΡΑΣΤΑΣΗ ΧΑΡΑΚΤΗΡΩΝ
Κανονικές εκφράσεις ή παραστάσεις (Regular Expressions)
Εντολές επεξεργασίας κειμένου (text) : sed (stream ή script editor), cut, paste, tr, sort, uniq Εντολές αναζήτησης : file, find 6ο ΕΡΓΑΣΤΗΡΙΟ ΛΕΙΤΟΥΡΓΙΚΑ.
Η ΤΑΣΗ + -.
Γρήγορη αναφορά του Lync 2013 για Office 365
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Recursive vs. Recursively Enumerable
§14. Перпендикуляр және көлбеу. §15. Үш перпендикуляр туралы теорема
Το φυλλάδιο της εταιρείας σας
Λογισμικό Εφαρμογών/Επεξεργασία Κειμένου
Δυναμικός Κατακερματισμός
ΗΥ565 Συστήματα Διαχείρισης Διεργασιών
Κτηνοτροφική εγκατάσταση είναι το ζωικό κεφάλαιο και το σύνολο των περιφραγμένων εγκαταστάσεων, κτηρίων, γηπέδων και αποθηκών, στις οποίες περιλαμβάνονται.
Μεταγράφημα παρουσίασης:

Regular Expressions

Regular Expressions - γενικά  Βασική ιδέα: έχουμε ένα pattern και ένα κείμενο εισόδου. Εφαρμόζουμε το pattern στο κείμενο και μπορούμε:  Να ελέγξουμε αν μέρος του κειμένου συμφωνεί με το pattern.  Να εξάγουμε κομμάτια του κειμένου που επιθυμούμε  Να αντικαταστήσουμε κομμάτια του κειμένου κλπ.  Πολύ δυνατό εργαλείο διαχείρισης strings.  Επιτρέπει τις λειτουργίες find και replace σε string, με πολύ περισσότερες δυνατότητες, όχι απλό string matching.  Πολύ γρήγορα!!!

Regular Expressions #1 Pattern.Ταιριάζει σε οποιονδήποτε χαρακτήρα. πχ το pattern a.c ταιριάζει στα strings abc, a_c, afc, a0c κλπ ^Ταιριάζει στην αρχή του string. πχ το pattern ^abc ταιριάζει στα strings που ξεκινούν από abc $Ταιριάζει στο τέλος του string. πχ το pattern abc$ ταιριάζει στα strings που τελειώνουν με abc *Ταιριάζει σε 0 ή περισσότερες εμφανίσεις του pattern που προηγείται. πχ το pattern a* ταιριάζει στο άδειο string και στα a, aa, aaa, aaaa κλπ. +Ταιριάζει σε 1 ή περισσότερες εμφανίσεις του pattern που προηγείται. πχ το pattern a+ ταιριάζει στα a, aaa, aaaa, κλπ ?Ταιριάζει σε 0 ή 1 εμφανίσεις του pattern που προηγείται. πχ το pattern a?bc ταιριάζει στα strings abc και bc {m}{m}Ταιριάζει σε m εμφανίσεις του pattern που προηγείται. πχ το pattern a{3} ταιριάζει στο string aaa {m,n}Ταιριάζει σε m έως n εμφανίσεις του pattern που προηγείται. πχ το pattern a{1,3} ταιριάζει στα a, aa, aaa

Regular Expression #2 Pattern []Ταιριάζει σε σύνολο χαρακτήρων. πχ [0-9] είναι ένα οποιοδήποτε αριθμητικό ψηφίο. [a-zA-Z] ένα οποιοδήποτε γράμμα. [134] είναι ένα οποιοδήποτε ψηφίο από τα 1 3 ή 4. [0-9]+ ταιριάζει σε οποιονδήποτε ακέραιο [a-zA-Z]+ ταιριάζει σε οποιαδήποτε λέξη έχει μόνο γράμματα. [^ ]Ταιριάζει σε οτιδήποτε δεν περιέχεται στο σύνολο χαρακτήρων. πχ το [^0-9] ταιριάζει σε οτιδήποτε δεν είναι ψηφίο. |x|y ταιριάζει είτε στο x είτε στο y ( )Ομαδοποίηση ενός υποσυνόλου του pattern. πχ (01)+ ταιριάζει στα strings 01,0101, κλπ ενώ το 01+ ταιριάζει στα 01,011, 0111 κλπ \Escape character. Αν θέλω να συμπεριλάβω κάποιον ειδικό χαρακτήρα για την τιμή του, χρησιμοποιώ τον escape. πχ το \+ ταιριάζει στον χαρακτήρα + και όχι σε επαναλήψεις του προηγούμενου.

Regular Expressions #3 Pattern \tTab \nNew line \sΤαιριάζει στα κενά. (whitespace, tab, new line κλπ) \d\dΤαιριάζει σε ψηφία. Ισοδύναμο με [0-9] \w\wΤαιριάζει σε ψηφία, γράμματα ή underscore. Ισοδύναμο με το [0-9a-zA-Z_]

Regular Expressions – look(ahead|behind) Pattern (?=pattern)Positive lookahead – ταιριάζει με το string που ακολουθείται από το pattern που περιγράφεται. πχ το readme(?=\.txt) ταιριάζει με το readme μόνο αν έχει κατάληξη.txt Προσοχή: αυτό που ταιριάζει είναι το readme! Το.txt δεν καταναλώνεται! (?!pattern)Negative lookahead – ταιριάζει με το string που δεν ακολουθείται από το pattern που περιγράφεται. (?<=pattern)Positive lookbehind – ταιριάζει με το string από το οποίο προηγείται το pattern που περιγράφεται. πχ. το (?<=readme) \.txt ταιριάζει με το.txt μόνο αν προηγείται το readme. (?<!pattern)Negative lookbehind – ταιριάζει με το string από το οποίο δεν προηγείται το pattern που περιγράφεται.

C# - Regex  Namespace: System.Text.RegularExpressions  Η κλάση Regex υποστηρίζει τη λειτουργικότητα των regular expressions  Βασικά μέλη:  IsMatch: επιστρέφει true ή false ανάλογα με το αν το input ταιριάζει με το pattern ή όχι  Match: επιστρέφει και το μέρος του input που κάνει match (σε αντικείμενο της κλάσης Match)  Matches: επιστρέφει συλλογή από matches (σε αντικείμενο της κλάσης MatchCollection).

C# - Regex Example

C# string literals  Το pattern \\\\ ταιριάζει με τον χαρακτήρα \. Έχει έναν escape character για τη σύνταξη των regular expressions και επιπλέον escape character για την αποθήκευσή του σε string.  Λύση: raw strings. Με την αναπαράσταση των string literals δεν χρειάζεται να κάνουμε escape τους ειδικούς χαρακτήρες.

C# - escape hell

C# - raw strings

C# - Named Groups  Με τη χρήση του pattern (? pattern) μπορούμε να ομαδοποιήσουμε και να ονομάσουμε ένα μέρος του string εισόδου, το οποίο μπορούμε να ανακτήσουμε με το όνομά του.

Python – re module  Module: re  Υποστηρίζει:  Search  match  groups  named groups.  Υποστηρίζονται επίσης τα raw strings με τη μορφή: pattern = r"\d+\.\d*"

Python - example  >>> import re  >>> m = re.search('(?<=abc)def', 'abcdef')  >>> m.group(0) 'def'  >>> m = re.search('(?<=-)\w+', 'spam-egg')  >>> m.group(0) 'egg'

Python match vs search  Υποστηρίζονται δύο τρόποι ψαξίματος:  re.search : ψάχνει σε οποιοδήποτε μέρος του string  re.match : ψάχνει μόνο στην αρχή του string  >>> re.match("c", "abcdef") # No match  >>> re.search("c", "abcdef") # Match

Python – named groups  Με τη χρήση του pattern (?P pattern) η python υποστηρίζει named groups.  >>> m = re.match(r"(?P \w+) (?P \w+)", "Malcom Reynolds")  >>> m.group('first_name') 'Malcom'  >>> m.group('last_name') 'Reynolds'

Regular Expressions - more  Και οι 2 γλώσσες υποστηρίζουν επιπλέον μέσω regular expressions:  split σε input strings  replace  Επιλογές για το αν η είσοδος θα είναι multiline, το encoding κλπ. ...