{"id":78,"date":"2017-12-05T17:10:00","date_gmt":"2017-12-05T16:10:00","guid":{"rendered":"https:\/\/www.dammiunadritta.it\/?p=78"},"modified":"2017-12-05T17:42:39","modified_gmt":"2017-12-05T16:42:39","slug":"trovare-una-data-in-un-testo","status":"publish","type":"post","link":"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/","title":{"rendered":"Trovare una data in un testo con le Espressioni Regolari"},"content":{"rendered":"

Trovare una data in un testo sarebbe un compito piuttosto facile con qualsiasi editor di testo, se non fosse per il fatto che una data, almeno in italiano, pu\u00f2 essere scritta in molti modi diversi.<\/p>\n

Per esempio il 05\/04\/2017 pu\u00f2 essere scritto: 5\/4\/2017<\/code>, 05\/04\/2017<\/code>, 5\/04\/2017<\/code>, 5.5.2017<\/code>, 05-4-2017<\/code>, 5 aprile 2017<\/code>, 05 apr '17<\/code>, aprile 2017<\/code>, solo per fare alcuni esempi.<\/p>\n

Come fare allora, se non ne conosciamo il formato esatto, a trovare una data in un testo?<\/p>\n

\"trovareFortunatamente ci vengono in soccorso le Espressioni Regolari (ne abbiamo gi\u00e0 parlato in un precedente articolo<\/a>), un linguaggio utilizzabile nella maggior parte degli editor di testo (il migliore fra i gratuiti \u00e8 senz’altro Notepad++<\/a>).<\/p>\n

Ed ecco, senza troppi giri di parole, l’espressione regolare che riesce ad individuare qualsiasi tipo di data in un testo.<\/p>\n

Fate la prova: scaricate Notepad++ dal link qui sopra, incollateci il testo di questa pagina, aprite il modulo di ricerca cliccando sul binocolo nella barra in alto oppure digitando CTRL+F<\/code>\u00a0incollate l’intera espressione regolare nella casella di testo “Trova” e biffate in basso a sinistra la casella “Espressione regolare”.<\/p>\n

Ora cliccate in alto a destra su “Trova successivo” e vedrete che le date saranno evidenziate una ad una ogni click che fate.<\/p>\n

(\\d\\d?)?(\\s|\/|-|\\.)?(\\d|\\d\\d|gen(naio)?|feb(braio)?|mar(zo)?|apr(ile)?|mag(gio)?|giu(gno)?|lug(lio)?|ago(sto)?|set(tembre)?|ott(obre)?|nov(embre)?|dic(embre)?)?(\\s|\/|-|\\.)?(\\d\\d\\d\\d|'\\d\\d)<\/code><\/pre>\n

La RegEx in dettaglio<\/h3>\n

Esaminando l’espressione regolare qui sopra, vediamo che \u00e8 composta da 5 gruppi, ognuno racchiuso da una coppia di parentesi tonde.<\/p>\n

Il primo gruppo rappresenta il giorno della data ed \u00e8 composto da due \\d<\/code>\u00a0che significa “una cifra qualsiasi”; notate che la seconda \\d<\/code>\u00e8 seguita da un punto interrogativo che significa che il carattere subito precedente pu\u00f2 esserci o non esserci.<\/p>\n

Quindi il primo gruppo individua una o due cifre ma, poich\u00e9 \u00e8 anche possibile che la data sia scritta senza giorno (per esempio aprile 2017<\/code>) il punto interrogativo subito fuori la parentesi di chiusura avvisa che l’intero gruppo pu\u00f2 anche non esserci.<\/p>\n

Il secondo gruppo rappresenta i possibili separatori di data: nel nostro caso abbiamo previsto come separatori lo spazio (\\s<\/code>), la slash (\/<\/code>), il trattino alto (-<\/code>), il punto (\\.<\/code>). Notate come ogni carattere \u00e8 separato dal simbolo |<\/code>\u00a0che, nelle espressioni regolari, ha la funzione di un OR<\/code> logico.<\/p>\n

Notate anche che il punto \u00e8 preceduto da una backslash (\\<\/code>) che rappresenta un carattere di “escape” e che ci dice che quel punto non \u00e8 il carattere jolly delle RegEx che rappresenta “qualsiasi carattere”, ma \u00e8 proprio il simbolo del punto.<\/p>\n

Anche il secondo gruppo pu\u00f2 anche non esserci e quindi \u00e8 seguito da un ?<\/code> .<\/p>\n

Il terzo gruppo rappresenta i nomi dei mesi. Tutte le possibili varianti sono separate dal carattere |<\/code> e quindi sono ugualmente possibili.<\/p>\n

Per tenere conto anche del fatto che i mesi possono essere abbreviati dalle tre lettere iniziali, il rimanente del nome del mese \u00e8 raggruppato fra parentesi e seguito da un punto interrogativo.<\/p>\n

Cos\u00ec, gen(naio)?<\/code>significa che deve essere ricercato sia gen<\/code> che gennaio<\/code>.<\/p>\n

Anche l’intero terzo gruppo \u00e8 seguito da un punto interrogativo per cercare perfino le date in cui compare solamente l’anno.<\/p>\n

Il quarto gruppo \u00e8 uguale al secondo e rappresenta il separatore di data, mentre il quinto gruppo rappresenta l’anno che pu\u00f2 essere scritto con 4 cifre (\\d\\d\\d\\d<\/code>) oppure con 2 cifre precedute da un apostrofo ('\\d\\d<\/code>).<\/p>\n

I cinque gruppi che abbiamo esaminato formano quindi una Espressione regolare che ci permette di\u00a0trovare una data in un testo in qualsiasi formato sia scritta: anche se contiene solamente l’anno!<\/p>\n

 <\/p>\n","protected":false},"excerpt":{"rendered":"

Trovare una data in un testo sarebbe un compito piuttosto facile con qualsiasi editor di testo, se non fosse per il fatto che una data, almeno in italiano, pu\u00f2 essere scritta in molti modi diversi. Per esempio il 05\/04\/2017 pu\u00f2 essere scritto: 5\/4\/2017, 05\/04\/2017, 5\/04\/2017, 5.5.2017, 05-4-2017, 5 aprile 2017, …<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[14],"tags":[19,17,18,20],"yoast_head":"\nTrovare una data in un testo con le RegEx: vedi come! | Dammi Una Dritta<\/title>\n<meta name=\"description\" content=\"Come trovare una data in un testo scritta in qualsiasi formato? Ci vengono in aiuto le Espressioni Regolari: scopri come!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Trovare una data in un testo con le RegEx: vedi come! | Dammi Una Dritta\" \/>\n<meta property=\"og:description\" content=\"Come trovare una data in un testo scritta in qualsiasi formato? Ci vengono in aiuto le Espressioni Regolari: scopri come!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/\" \/>\n<meta property=\"og:site_name\" content=\"Dammi Una Dritta\" \/>\n<meta property=\"article:published_time\" content=\"2017-12-05T16:10:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-12-05T16:42:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dammiunadritta.it\/wp-content\/uploads\/2017\/12\/regex-300x160.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"SandroKan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dammiunadritta.it\/#website\",\"url\":\"https:\/\/www.dammiunadritta.it\/\",\"name\":\"Dammi Una Dritta\",\"description\":\"Consigli utili per sopravvivere nel mondo dell'informatica\",\"publisher\":{\"@id\":\"https:\/\/www.dammiunadritta.it\/#\/schema\/person\/37840f5af379d4535748c448c2ac38c9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dammiunadritta.it\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"it-IT\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#primaryimage\",\"inLanguage\":\"it-IT\",\"url\":\"https:\/\/www.dammiunadritta.it\/wp-content\/uploads\/2017\/12\/regex-300x160.jpg\",\"contentUrl\":\"https:\/\/www.dammiunadritta.it\/wp-content\/uploads\/2017\/12\/regex-300x160.jpg\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#webpage\",\"url\":\"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/\",\"name\":\"Trovare una data in un testo con le RegEx: vedi come! | Dammi Una Dritta\",\"isPartOf\":{\"@id\":\"https:\/\/www.dammiunadritta.it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#primaryimage\"},\"datePublished\":\"2017-12-05T16:10:00+00:00\",\"dateModified\":\"2017-12-05T16:42:39+00:00\",\"description\":\"Come trovare una data in un testo scritta in qualsiasi formato? Ci vengono in aiuto le Espressioni Regolari: scopri come!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.dammiunadritta.it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Trovare una data in un testo con le Espressioni Regolari\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.dammiunadritta.it\/#\/schema\/person\/37840f5af379d4535748c448c2ac38c9\"},\"headline\":\"Trovare una data in un testo con le Espressioni Regolari\",\"datePublished\":\"2017-12-05T16:10:00+00:00\",\"dateModified\":\"2017-12-05T16:42:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#webpage\"},\"wordCount\":531,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.dammiunadritta.it\/#\/schema\/person\/37840f5af379d4535748c448c2ac38c9\"},\"image\":{\"@id\":\"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dammiunadritta.it\/wp-content\/uploads\/2017\/12\/regex-300x160.jpg\",\"keywords\":[\"data\",\"RegEx\",\"RegExp\",\"Trovare qualsiasi data\"],\"articleSection\":[\"Espressioni Regolari\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#respond\"]}]},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.dammiunadritta.it\/#\/schema\/person\/37840f5af379d4535748c448c2ac38c9\",\"name\":\"SandroKan\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dammiunadritta.it\/#personlogo\",\"inLanguage\":\"it-IT\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bffe2358730429f02409e0d3c4e6e5ba?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bffe2358730429f02409e0d3c4e6e5ba?s=96&d=mm&r=g\",\"caption\":\"SandroKan\"},\"logo\":{\"@id\":\"https:\/\/www.dammiunadritta.it\/#personlogo\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Trovare una data in un testo con le RegEx: vedi come! | Dammi Una Dritta","description":"Come trovare una data in un testo scritta in qualsiasi formato? Ci vengono in aiuto le Espressioni Regolari: scopri come!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/","og_locale":"it_IT","og_type":"article","og_title":"Trovare una data in un testo con le RegEx: vedi come! | Dammi Una Dritta","og_description":"Come trovare una data in un testo scritta in qualsiasi formato? Ci vengono in aiuto le Espressioni Regolari: scopri come!","og_url":"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/","og_site_name":"Dammi Una Dritta","article_published_time":"2017-12-05T16:10:00+00:00","article_modified_time":"2017-12-05T16:42:39+00:00","og_image":[{"url":"https:\/\/www.dammiunadritta.it\/wp-content\/uploads\/2017\/12\/regex-300x160.jpg"}],"twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"SandroKan","Tempo di lettura stimato":"3 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/www.dammiunadritta.it\/#website","url":"https:\/\/www.dammiunadritta.it\/","name":"Dammi Una Dritta","description":"Consigli utili per sopravvivere nel mondo dell'informatica","publisher":{"@id":"https:\/\/www.dammiunadritta.it\/#\/schema\/person\/37840f5af379d4535748c448c2ac38c9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dammiunadritta.it\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"it-IT"},{"@type":"ImageObject","@id":"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#primaryimage","inLanguage":"it-IT","url":"https:\/\/www.dammiunadritta.it\/wp-content\/uploads\/2017\/12\/regex-300x160.jpg","contentUrl":"https:\/\/www.dammiunadritta.it\/wp-content\/uploads\/2017\/12\/regex-300x160.jpg"},{"@type":"WebPage","@id":"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#webpage","url":"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/","name":"Trovare una data in un testo con le RegEx: vedi come! | Dammi Una Dritta","isPartOf":{"@id":"https:\/\/www.dammiunadritta.it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#primaryimage"},"datePublished":"2017-12-05T16:10:00+00:00","dateModified":"2017-12-05T16:42:39+00:00","description":"Come trovare una data in un testo scritta in qualsiasi formato? Ci vengono in aiuto le Espressioni Regolari: scopri come!","breadcrumb":{"@id":"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dammiunadritta.it\/"},{"@type":"ListItem","position":2,"name":"Trovare una data in un testo con le Espressioni Regolari"}]},{"@type":"Article","@id":"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#article","isPartOf":{"@id":"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#webpage"},"author":{"@id":"https:\/\/www.dammiunadritta.it\/#\/schema\/person\/37840f5af379d4535748c448c2ac38c9"},"headline":"Trovare una data in un testo con le Espressioni Regolari","datePublished":"2017-12-05T16:10:00+00:00","dateModified":"2017-12-05T16:42:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#webpage"},"wordCount":531,"commentCount":0,"publisher":{"@id":"https:\/\/www.dammiunadritta.it\/#\/schema\/person\/37840f5af379d4535748c448c2ac38c9"},"image":{"@id":"https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dammiunadritta.it\/wp-content\/uploads\/2017\/12\/regex-300x160.jpg","keywords":["data","RegEx","RegExp","Trovare qualsiasi data"],"articleSection":["Espressioni Regolari"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dammiunadritta.it\/espressioni-regolari\/trovare-una-data-in-un-testo\/#respond"]}]},{"@type":["Person","Organization"],"@id":"https:\/\/www.dammiunadritta.it\/#\/schema\/person\/37840f5af379d4535748c448c2ac38c9","name":"SandroKan","image":{"@type":"ImageObject","@id":"https:\/\/www.dammiunadritta.it\/#personlogo","inLanguage":"it-IT","url":"https:\/\/secure.gravatar.com\/avatar\/bffe2358730429f02409e0d3c4e6e5ba?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bffe2358730429f02409e0d3c4e6e5ba?s=96&d=mm&r=g","caption":"SandroKan"},"logo":{"@id":"https:\/\/www.dammiunadritta.it\/#personlogo"}}]}},"_links":{"self":[{"href":"https:\/\/www.dammiunadritta.it\/wp-json\/wp\/v2\/posts\/78"}],"collection":[{"href":"https:\/\/www.dammiunadritta.it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dammiunadritta.it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dammiunadritta.it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dammiunadritta.it\/wp-json\/wp\/v2\/comments?post=78"}],"version-history":[{"count":0,"href":"https:\/\/www.dammiunadritta.it\/wp-json\/wp\/v2\/posts\/78\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dammiunadritta.it\/wp-json\/wp\/v2\/media?parent=78"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dammiunadritta.it\/wp-json\/wp\/v2\/categories?post=78"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dammiunadritta.it\/wp-json\/wp\/v2\/tags?post=78"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}