Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoVegliantino Guida Modificato 10 anni fa
1
BIOINFO3 - Lezione 281 PATTERN MATCHING E sicuramente una delle cose più utili del Perl, che lo rende un linguaggio estremamente potente. Permette di cercare dei pattern allinterno delle stringhe, ovvero delle particolari sottostringhe descritte attraverso il linguaggio delle espressioni regolari. In termini insiemistici, data unespressione regolare: Insieme di tutte le stringhe Insieme delle stringhe non descritte dallespressione regolare Insieme delle stringhe descritte dallespressione regolare
2
BIOINFO3 - Lezione 282 LE ESPRESSIONI REGOLARI Le espressioni regolari vengono così chiamate per il tipo di linguaggio (grammatica), appunto regolare che permette di definirle. La classificazione delle grammatiche fu realizzata negli anni 50 da Noam Chomsky, famosissimo linguista, filosofo, storico e politico, attualmente tra i leader carismatici del movimento no global. Ma cominciamo a vedere alcune espressioni regolari:. Riconosce un qualsiasi carattere, escluso il new-line \n Riconosce il carattere di new-line (vai a capo) \t Riconosce il carattere di tab [ ] Riconosce un solo carattere tra quelli indicati allinterno delle parentesi, si può usare il simbolo – per indicare i caratteri compresi tra due estremi (ad esempio da a a z, da 0 a 9)
3
BIOINFO3 - Lezione 283 ESPRESSIONI REGOLARI: [ ] Esempi: [aeiou]riconosce una vocale [oi]riconosce una o o una i man[oi]riconosce tutte le stringhe che contengono man seguita da o o da i, ad esempio mano, mani, ma anche amano, amanita.an[oi]riconosce tutte le parole che contengono un qualunque carattere seguito da an e da o oppure i, ad esempio mano, mani, nano, nani, lanima, 6anonimo ma non animali [a-z]riconosce una lettere minuscola [A-Z]riconosce una lettera maiuscola [a-zA-Z]riconosce una lettera [0-9]riconosce una cifra (è uguale a [0123456789] o [4859013726])
4
BIOINFO3 - Lezione 284 ESPRESSIONI REGOLARI: [^ ] [^ ] Riconosce un carattere diverso da quelli indicati allinterno delle parentesi [^0-9] riconosce un qualsiasi carattere non numerico [^a-zA-Z] riconosce un qualsiasi carattere non alfabetico Altri simboli: \d Riconosce una cifra (= [0-9]) \D Riconosce un carattere diverso da una cifra (= [^0-9]) \w Riconosce un carattere alfanumerico (= [a-zA-Z0-9]) \W Riconosce un carattere non alfanumerico (= [^a-zA-Z0-9]) \s Riconosce un carattere di spaziatura (spazi, new-line, tab,…) \S Riconosce un carattere non di spaziatura
5
BIOINFO3 - Lezione 285 ESPRESSIONI REGOLARI: ? ? Il carattere o lespressione regolare precedente (si possono usare le parentesi) è facoltativa (compare 0 o 1 volte) vai? riconosce vai ma anche va, Evvai!, divario ovvero tutto ciò che contiene vai o va penn?a riconosce penna, pena ma anche appena, ovvero tutto ciò che contiene penna o pena [1-2]?\d\d\d riconosce un numero formato da 3 o 4 cifre. Se a 4 cifre, la prima è un 1 oppure un 2
6
BIOINFO3 - Lezione 286 ESPRESSIONI REGOLARI: * * Il carattere o lespressione regolare precedente (si possono usare le parentesi) può essere ripetuta 0 o più volte sat20* riconosce sat2 ma anche sat20, sat200, 123sat231 ovvero tutto ciò che contiene sat2 seguito da un numero qualsiasi di zeri (anche nessuno) [0-9]* riconosce una sequenza di 0 o più cifre, quindi qualsiasi numero naturale o la stringa vuota ma*mma riconosce mmma, mamma, maamma, maaamma, …
7
BIOINFO3 - Lezione 287 ESPRESSIONI REGOLARI: + + Il carattere o lespressione regolare precedente (si possono usare le parentesi) deve essere ripetuta 1 o più volte sat20+ riconosce sat20 ma anche sat200, sat2000, 123sat2031 ovvero tutto ciò che contiene sat2 seguito da almeno uno zero [0-9]+ riconosce una sequenza di 1 o più cifre, quindi qualsiasi numero naturale ma+mma riconosce mamma, maamma, maaamma, … {} Se conosciamo il numero esatto di ripetizioni del carattere o dellespressione regolare precedente, tale numero si può indicare tra {}
8
BIOINFO3 - Lezione 288 ESPRESSIONI REGOLARI: | | Permette di scegliere tra due o più alternative (espressioni regolari) pippo|pluto|pflip Riconosce tutte le stringhe che contengono pippo, pluto o pflip, ad esempio anche plutone, Io mi chiamo pippo cas(a|etta) Riconosce tutte le stringhe contenenti casa o casetta : era equivalente scrivere cas(ett)?a cass?(a|etta) Riconosce tutte le stringhe contenenti casa, cassa, casetta, cassetta
9
BIOINFO3 - Lezione 289 CARATTERE DI ESCAPE Il carattere \ funziona anche in questo caso da carattere di escape e permette di far riconoscere anche i caratteri che danno significato alle espressioni regolari \\ Permette di riconoscere un \ \| Permette di riconoscere un | \+ Permette di riconoscere un + \* Permette di riconoscere un * \? Permette di riconoscere un ? \. Permette di riconoscere un. \( \) Permettono di riconoscere le parentesi tonde \[ \]) Permettono di riconoscere le parentesi quadre \{ \} Permettono di riconoscere le parentesi graffe \(\w+\.\w+\) riconosce un pattern formato da due stringhe alfanumeriche unite da un. racchiuso tra parentesi tonde
10
BIOINFO3 - Lezione 2810 ESPRESSIONI REGOLARI: ^ e $ ^ Indica che il pattern deve essere presente ad inizio della stringa (da non confondere con il ^ allinterno delle parentesi quadre) ^mare Riconosce tutte le stringhe che iniziano con mare: mare, maremma,maretta,… ma non amare riconosciuto da mare (senza il ^). $ Indica che il pattern deve essere presente alla fine della stringa asso$ Riconosce tutte le stringhe che terminano con asso: materasso, collasso, golasso, madrasso,… ma non associato, rassomigliare riconosciute da asso (senza il $)
11
BIOINFO3 - Lezione 2811 ESERCIZI Scrivere lespressione regolare che riconosce: Ad inizio stringa il simbolo di maggiore seguito da un numero qualsiasi di spazi bianchi (anche 0) e da un codice alfanumerico di almeno 1 carattere ^> *\w+ In qualunque punto della stringa la stringa cognome seguita immediatamente da : e da almeno uno spazio bianco. Segue poi un cognome di una persona cognome: +[A-Za-z \-]+ In qualunque punto della stringa o la stringa ANNI: seguita da un numero qualsiasi di spazi (anche 0) e da un numero oppure la stringa SESSO: seguita da un numero qualsiasi di spazi (anche 0) e da M o F (ANNI: *\d+)|(SESSO: *[MF])
12
BIOINFO3 - Lezione 2812 RIEPILOGO Espressioni regolari: [ ] e [^ ] ? * + { } | \ ^ e $
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.