SlideShare a Scribd company logo
1 of 61
Espressioni Regolari
      prof. Marcello Missiroli
       (Itis Corni. Modena)
sa sono le espressioni regol
sa sono le espressioni regol

        RegExp per gli amici
descrivono strutture all'inter
per cercare e modificare le
eate negli anni '50
ormalizzate da Stephen Cole Kleen
e esistono vari dialetti
Perché usarle?
Perché usarle?
nto potente nelle mani di ogni programmatore (specie in
Perché usarle?
nto potente nelle mani di ogni programmatore (specie in
Perché usarle?
nto potente nelle mani di ogni programmatore (specie in

e sostituzione semplice e banale....
Perché usarle?




         ..ma bisogna "vedere" la struttura!
Ma soprattutto vi trasforma da così..
a così!
Learning by example
Caratteri
/salve/          si:
                 "salve"
                 "salve a tutti"
                 "E' la salvezza"

                 no:
                 "sale"
                 "Salve"
"salv<b>e</b>"
Sequenza di "escape"
//(salve)//         si:
                  "/(salve)/"


                  no:
                  "salve"
                  "(salve)"
Alternative
/en|it|fr|de/   si:
                "en"
                "it"
                "fritte"

                no:
                "darf"
Raggruppamenti
/(it|fr)_(IT|CH)/          si:
                           "it_IT"
                           "it_CH"
                           "fr_IT"
Due gruppi indipendenti!
                           no:
                           "it_it"
Ancoraggio
/^(it|fr|en|de)$/      si:
                       "it"
                       "en"
                       "fr"
  Inizio e fine riga
                       no:
                       "italia"
Scelta di caratteri
/salv[eoa]/    si:
               "salve"
               "salva"
               "salvo"

               no:
               "salv"
               "salvoa"
"salvè"
Scelta di caratteri
/^Cl. [1-5]BInfo/   si:
                    "Cl. 4BInfo"
                    "Cl. 5BInformatica"

                    no:
                    "BInfo"
                    "Cl. 6Binfo"
Scelta di caratteri: complemento
/^Cl. [^1-5]BInfo/   si:
                     "Cl. 0BInfo"
                     "Cl. 6BInformatica"

                     no:
                     "Cl. 3Binfo"
Scelte condizionate
    /Iron(?=man)/                    si:
                                 "Ironman"

                                    no:
                                    "Iron"
che in versione negativa, usando (?!man)
Scelte condizionate
     /(?<=Iron)man/               si:
                                 "Ironman"

                                     no:
                                     "man"
che in versione negativa, usando (?<!man)
                                     "Iron"
Scelta di caratteri: "word class"
     /^w$/                          si:
                                     "a"
                                     "_"

                                     no:
quello che può costituire un nome di variabile
                                     "("
Scelta di caratteri:altre classi
/s/           Spazio bianco (anche tab)
               ""
/W/           Non-parola
               ")"
/D/           Non-numero
               "a"
/S/           Non-spazio bianco
               "="
Scelta di caratteri: qualsiasi
/^......$/     si:
               "abacab"
               "123/56"

               no:
               "("
Qualsiasi quantità (anche 0)
/^d*$/       si:
              "123456"
              ""

              no:
              "1a"
Qualsiasi quantità (minimo 1)
/^d+$/       si:
              "123456"


              no:
              "1a"
              ""
Uno o nessuno
/^pera?$/   si:
            "pera"
            "pere"
            "per"
            no:
            "peraa"
Specificare la quantità
/^059-d{7}$/     (esattamente sette)
                  "059-5556734"
/^059-d{6,7}$/   (da sei a sette)
                  "059-555673"
Attenti...operatori avidi!
/_(+*)_/
               "_bla_ _bla_"
Attenti...operatori avidi!
      /_(+*)_/
                                      "_bla_ _bla_"
                                       ^^^^^
ova la stringa più lunga possibile!
                                       ^^^^^^^
                                       ^^^^^^^^^^^
Attenti...operatori avidi!
/_(.+?)_/
                    "_bla_ _bla_"
                     ^^^^^
Ora si ferma qui!




Usare +? per renderlo meno avido!
Gruppi catturati
Di che si tratta?
uò essere riutilizzato subito o in seguito per manipolare

i dipende dal linguaggio usato.
Esempio
<a href="http://test.com">test</a>

Applichiamo a questo testo l'espressione

<a href="/(.*?)">(.*?)</a>/

l sistema scompone la stringa in cinque gruppi, in questo modo:
<a href="http://test.com">test</a>
l sistema scompone la stringa in cinque gruppi, numerandoli da 1 a 5
Esempio
usare questi gruppi come blocchi del Lego e costruire il risultato che c

n PHP,
 <a href="/)(.*?)(">)(.*?)(</a>)',$1.$2.$3.$2.$5 , "<a href="http://test.co



test.com">http://test.com</a>
Nomi dei gruppi catturati
Il nome dato ad ogni gruppo dipende dal linguaggio utilizzato


 Gruppo 1   PHP   .NET   Perl    Ruby     sed     Javascript




 1         X            X       X        X


 $1         X     X      X                        X


 ${1}       X     X      X
Nome del gruppo trovato
Esiste anche il "gruppo 0", ovvero l'intero testo trovato
    Gruppo 1   PHP   .NET   Perl   Ruby   sed     Javascript




    0         X                   X


    $0         X     X
.
    ${0}       X     X      X


    &                             X


    $&               X      X                     X
Di che si tratta?
uò essere riutilizzato subito o in seguito per manipolare

i dipende dal linguaggio usato.
Regex in azione




e/o programmi hanno supporto per
        Sono facili da usare!
Putroppo...




no supporto diretto per le RegEx op
Esempio: ruby
#!/usr/bin/ruby
phone = "2004-959-559
# Togli tutto tranne i numeri
phone = phone.gsub!(/D/, "")

#ora la variabile numero è uguale a
2004959559
Esempio: grep
ricerca di righe in "files" che contengono
grep strano files        ...la parola strano
grep '^strano' files     ...solo a inizio riga
grep 'strano$' files     ...solo a fine riga
grep '^strano$' files ...solo la parola strano
grep '[Ss]trano' files ... strano o Strano
grep '^$' files           ... righe vuote
grep '[0-9][0-9]' file    ... coppie di cifre
Esempio: Javascript
var espressione = /^[a-z0-9]/;
var stringa = "Unastringa";
if (!espressione.test(stringa))
{ document.write("La stringa non è valida!"); }
----------------------------------------------------
var string2="(304)434-5454"
parsestring2=string2.replace(/[()-]/g, "")
//restituisce "3044345454", toglie "(", ")", e "-")
Esempio: grep
ricerca di righe che contengono
grep strano file       ...la parola strano
grep '^strano' files    ...solo a inizio riga
grep 'strano$' files    ...solo a fine riga
grep '^strano$' files ...solo la parola strano
grep '[Ss]trano' files ... strano o Strano grep
grep '^$' files          ... righe vuote
grep '[0-9][0-9]' file   ... coppie di cifre
Esempio: Java
l titolo di una pagina HTML
"(?i)(<title.*?>)(.+?)(</title>)";
dated = EXAMPLE_TEST.replaceAll(pattern, "$2");
sce true se la stringa è esattamente "True" o "true, "Yes
olean isTrueOrYes(String s){
s.matches("[tT]rue|[yY]es"); }
Esempio: Java
gex.Matcher; import java.util.regex.Pattern;

xTestPatternMatcher {
inal String EXAMPLE_TEST = "This is my small example string which I'm going to use for p

void main(String[] args) {
pattern = Pattern.compile("w+",CASE_INSENSITIVE);
 matcher = pattern.matcher(EXAMPLE_TEST);
 lla tutte le occorenze
atcher.find()) {
 em.out.print("Start index: " + matcher.start());
 em.out.print(" End index: " + matcher.end() + " ");
 em.out.println(matcher.group());}
  sci tutt gli spazi con tabi
 eplace = Pattern.compile("s+");
 matcher2 = replace.matcher(EXAMPLE_TEST);
out.println(matcher2.replaceAll("t")); } }
Esempio: C++
ard per le regex. Occorre studiarsi la versione



ce(str, rx, replacement);
6 “ricette”

Non perfette al 100%, utili come base di lavoro
1. Email valida?
_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+
2. Username valido?
/^[a-zd_]{5,20}$/
3. Indirizzo IP?
0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4
4. Carta di credito?
3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-
5. URL?
s|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):
6. Codice Fiscale?
abcdehlmprstABCDEHLMPRST]{1}[0-9]{2}([a-zA-Z]{1}[
Imparate le BASI!
Ci sono cose nella vita che bisogna per forza imparare..
Imparate le BASI!
Ci sono cose nella vita che bisogna per forza imparare..
Per tutto il resto c'è
Sitografia
Raj Kissu Rajandran: "regular-expressions-101"
Lars Vogel: "JavaRegularExpressions"
Brigitte Nellinek: "regular-expressions-eine-einfhrung"
Compago.it: "esempi-pratici-di-espressioni-regolari"
Licenza

More Related Content

Viewers also liked

Uefi: l'eterna lotta tra il bene e il male
Uefi: l'eterna lotta tra il bene e il maleUefi: l'eterna lotta tra il bene e il male
Uefi: l'eterna lotta tra il bene e il maleMarcello Missiroli
 
Programmazione a oggetti tramite la macchina del caffé (pt. 3)
Programmazione a oggetti tramite la macchina del caffé (pt. 3)Programmazione a oggetti tramite la macchina del caffé (pt. 3)
Programmazione a oggetti tramite la macchina del caffé (pt. 3)Marcello Missiroli
 
Lo stack: tipo di dato astratto e implementazione in Java
Lo stack: tipo di dato astratto e implementazione in JavaLo stack: tipo di dato astratto e implementazione in Java
Lo stack: tipo di dato astratto e implementazione in JavaMarcello Missiroli
 
3 Linux Espressioni Regolari
3 Linux Espressioni Regolari3 Linux Espressioni Regolari
3 Linux Espressioni RegolariMauro Ferrigno
 
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...Simone Cumar
 
L'avvento del programmatore sociale
L'avvento del programmatore socialeL'avvento del programmatore sociale
L'avvento del programmatore socialeMarcello Missiroli
 
Linguaggi Formali Compilazione: Grammatiche
Linguaggi Formali Compilazione: GrammaticheLinguaggi Formali Compilazione: Grammatiche
Linguaggi Formali Compilazione: GrammaticheMajong DevJfu
 
Analisi delle differenze strutturali nelle espressioni regolari costruite da ...
Analisi delle differenze strutturali nelle espressioni regolari costruite da ...Analisi delle differenze strutturali nelle espressioni regolari costruite da ...
Analisi delle differenze strutturali nelle espressioni regolari costruite da ...Marco Potok
 
Le Espressioni Regolari e gli Automi
Le Espressioni Regolari e gli AutomiLe Espressioni Regolari e gli Automi
Le Espressioni Regolari e gli AutomiGiuseppe Luciano
 

Viewers also liked (20)

Corso Moodle: presentazione
Corso Moodle: presentazioneCorso Moodle: presentazione
Corso Moodle: presentazione
 
Il ciclo for
Il ciclo forIl ciclo for
Il ciclo for
 
Uefi: l'eterna lotta tra il bene e il male
Uefi: l'eterna lotta tra il bene e il maleUefi: l'eterna lotta tra il bene e il male
Uefi: l'eterna lotta tra il bene e il male
 
Programmazione a oggetti tramite la macchina del caffé (pt. 3)
Programmazione a oggetti tramite la macchina del caffé (pt. 3)Programmazione a oggetti tramite la macchina del caffé (pt. 3)
Programmazione a oggetti tramite la macchina del caffé (pt. 3)
 
Lo stack: tipo di dato astratto e implementazione in Java
Lo stack: tipo di dato astratto e implementazione in JavaLo stack: tipo di dato astratto e implementazione in Java
Lo stack: tipo di dato astratto e implementazione in Java
 
Corso Moodle: perché?
Corso Moodle: perché?Corso Moodle: perché?
Corso Moodle: perché?
 
3 Linux Espressioni Regolari
3 Linux Espressioni Regolari3 Linux Espressioni Regolari
3 Linux Espressioni Regolari
 
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
 
Eccezioni in java
Eccezioni in javaEccezioni in java
Eccezioni in java
 
L'avvento del programmatore sociale
L'avvento del programmatore socialeL'avvento del programmatore sociale
L'avvento del programmatore sociale
 
Moodle: i compiti (homework)
Moodle: i compiti (homework)Moodle: i compiti (homework)
Moodle: i compiti (homework)
 
Investire nelle user story
Investire nelle user storyInvestire nelle user story
Investire nelle user story
 
Linguaggi Formali Compilazione: Grammatiche
Linguaggi Formali Compilazione: GrammaticheLinguaggi Formali Compilazione: Grammatiche
Linguaggi Formali Compilazione: Grammatiche
 
Analisi delle differenze strutturali nelle espressioni regolari costruite da ...
Analisi delle differenze strutturali nelle espressioni regolari costruite da ...Analisi delle differenze strutturali nelle espressioni regolari costruite da ...
Analisi delle differenze strutturali nelle espressioni regolari costruite da ...
 
Routing dinamico
Routing dinamicoRouting dinamico
Routing dinamico
 
The Sequel to sql
The Sequel to sqlThe Sequel to sql
The Sequel to sql
 
Le Espressioni Regolari e gli Automi
Le Espressioni Regolari e gli AutomiLe Espressioni Regolari e gli Automi
Le Espressioni Regolari e gli Automi
 
Controllo di versione e Git
Controllo di versione e GitControllo di versione e Git
Controllo di versione e Git
 
Introduzione al dns
Introduzione al dnsIntroduzione al dns
Introduzione al dns
 
Il sistema binario
Il sistema binarioIl sistema binario
Il sistema binario
 

Similar to Espressioni regolari

11 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 211 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 2Majong DevJfu
 
Php Funzioni Built In Barbiera 97
Php Funzioni Built In Barbiera 97Php Funzioni Built In Barbiera 97
Php Funzioni Built In Barbiera 97Roberto Barbiera
 
Scala Programming Linux Day 2009
Scala Programming Linux Day 2009Scala Programming Linux Day 2009
Scala Programming Linux Day 2009Massimiliano Dessì
 
Creare un proprio linguaggio di programmazione per il web e applicazioni desk...
Creare un proprio linguaggio di programmazione per il web e applicazioni desk...Creare un proprio linguaggio di programmazione per il web e applicazioni desk...
Creare un proprio linguaggio di programmazione per il web e applicazioni desk...Codemotion
 
Groovy e Domain Specific Languages
Groovy e Domain Specific LanguagesGroovy e Domain Specific Languages
Groovy e Domain Specific LanguagesTiziano Lattisi
 
Codemotion 2012 creare un proprio linguaggio di programmazione
Codemotion 2012 creare un proprio linguaggio di programmazioneCodemotion 2012 creare un proprio linguaggio di programmazione
Codemotion 2012 creare un proprio linguaggio di programmazioneGabriele Guizzardi
 
Introduzione al Perl (BMR Genomics) - Lezione 1 Agosto 2014
Introduzione al Perl (BMR Genomics) - Lezione 1 Agosto 2014Introduzione al Perl (BMR Genomics) - Lezione 1 Agosto 2014
Introduzione al Perl (BMR Genomics) - Lezione 1 Agosto 2014Andrea Telatin
 

Similar to Espressioni regolari (10)

Py a5 python-text
Py a5 python-textPy a5 python-text
Py a5 python-text
 
11 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 211 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 2
 
Php Funzioni Built In Barbiera 97
Php Funzioni Built In Barbiera 97Php Funzioni Built In Barbiera 97
Php Funzioni Built In Barbiera 97
 
Scala Programming Linux Day 2009
Scala Programming Linux Day 2009Scala Programming Linux Day 2009
Scala Programming Linux Day 2009
 
Creare un proprio linguaggio di programmazione per il web e applicazioni desk...
Creare un proprio linguaggio di programmazione per il web e applicazioni desk...Creare un proprio linguaggio di programmazione per il web e applicazioni desk...
Creare un proprio linguaggio di programmazione per il web e applicazioni desk...
 
Groovy e Domain Specific Languages
Groovy e Domain Specific LanguagesGroovy e Domain Specific Languages
Groovy e Domain Specific Languages
 
Codemotion 2012 creare un proprio linguaggio di programmazione
Codemotion 2012 creare un proprio linguaggio di programmazioneCodemotion 2012 creare un proprio linguaggio di programmazione
Codemotion 2012 creare un proprio linguaggio di programmazione
 
Java codestyle & tipstricks
Java codestyle & tipstricksJava codestyle & tipstricks
Java codestyle & tipstricks
 
Rubynetto
RubynettoRubynetto
Rubynetto
 
Introduzione al Perl (BMR Genomics) - Lezione 1 Agosto 2014
Introduzione al Perl (BMR Genomics) - Lezione 1 Agosto 2014Introduzione al Perl (BMR Genomics) - Lezione 1 Agosto 2014
Introduzione al Perl (BMR Genomics) - Lezione 1 Agosto 2014
 

More from Marcello Missiroli (13)

Algorithmist guide II
Algorithmist guide IIAlgorithmist guide II
Algorithmist guide II
 
Guida del perfetto Algoritmista I
Guida del perfetto Algoritmista IGuida del perfetto Algoritmista I
Guida del perfetto Algoritmista I
 
Workshop: Introduzione ad TDD
Workshop: Introduzione ad TDDWorkshop: Introduzione ad TDD
Workshop: Introduzione ad TDD
 
Dal c a Java (3/3)
Dal c a Java (3/3)Dal c a Java (3/3)
Dal c a Java (3/3)
 
Dal C a Java (2/3)
Dal C a Java (2/3)Dal C a Java (2/3)
Dal C a Java (2/3)
 
Dal C a Java (1/3)
Dal C a Java (1/3)Dal C a Java (1/3)
Dal C a Java (1/3)
 
Variabili
VariabiliVariabili
Variabili
 
Sviluppo degli algoritmi
Sviluppo degli algoritmiSviluppo degli algoritmi
Sviluppo degli algoritmi
 
5 stadi dello sviluppo di un gruppo
5 stadi dello sviluppo di un gruppo5 stadi dello sviluppo di un gruppo
5 stadi dello sviluppo di un gruppo
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!
 
Big O Notation
Big O NotationBig O Notation
Big O Notation
 
Insegnare Agile
Insegnare AgileInsegnare Agile
Insegnare Agile
 
Introduzione a java doc
Introduzione a java docIntroduzione a java doc
Introduzione a java doc
 

Recently uploaded

Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 

Recently uploaded (9)

Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 

Espressioni regolari