come ESTRARRE gli indirizzi EMAIL
A volte avete esportato dati provenienti dal sito web o dal software aziendale
contenenti informazioni sugli ordini o dettagli dei clienti.
Potreste aver avuto bisogno solo dell’indirizzo email e della data dell’ordine.
Un modo è importare tutti i dati in Excel, eliminare le colonne indesiderate
ed esportare quelle rimanenti.
Questa operazione potrebbe non funzionare bene se il campo email contiene anche
la descrizione dell’email, ad esempio: “Dave Martin <davemartin@bogusemail.com>”.
Può risultare macchinoso se occorre ripetere l’attività più volte
o se è necessario spiegare tutti i passaggi ad un’altra persona.
Estrarre i dati desiderati utilizzando “regex”
Una espressione regolare (abbreviata in “regex” o “regexp”)
è un elenco di caratteri che definisce una corrispondenza nel testo.
Un caso molto semplice è quello di individuare una parola scritta in due modi diversi nel testo:
l’espressione regolare seriali[sz]e
corrisponde sia a “serialise” che a “serialize”.
Una situazione più complessa è la sintassi per identificare nel testo
-
un indirizzo email:
[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+
fonte (in inglese): stackoverflow - regex extract email from strings -
una data:
\d{4}-\d{2}-\d{1,2}
fonte (in inglese): stackoverflow - regex for extracting date from string
Tutorial sulle espressioni regolari (Regex)
Video YouTube consigliato (in inglese)
“38 minuti ben spesi, ne vale assolutamente la pena” :
How to Match Any Pattern of Text
(dal minuto 25 viene spiegata la sintassi per estrarre gli indirizzi email)
Promemoria per l’utilizzo delle espressioni regolari (in inglese)
Il servizio online RegExr
Le espressioni regolari sono generalmente accettate
negli editor di testo avanzati come Notepad++ o Atom.
Sono disponibili anche strumenti online gratuiti, uno di questi è: https://regexr.com
un servizio online per imparare, creare e provare le espressioni regolari.
Spiegazione dell’interfaccia Web:
“Expression” è il campo che contiene la sintassi regex.
“Text” è il contenuto da analizzare.
“Tools > List” mostrerà i risultati dell’estrazione.
Esempio 1: per estrarre solo l’indirizzo email
Expression:
[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+
Text:
Dave Martin
615-555-7164
173 Main St., Springfield RI 55924
davemartin@bogusemail.com
Charles Harris
800-555-5669
969 High St., Atlantis VA 34075
charlesharris@bogusemail.com
Eric Williams
560-555-5153
806 1st St., Faketown AK 86847
laurawilliams@bogusemail.com
Tools > List:
$&\n
Result:
davemartin@bogusemail.com
charlesharris@bogusemail.com
laurawilliams@bogusemail.com
Esempio 2: per estrarre l’indirizzo email e la data
Expression:
","(.*?)([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9_-]+)(.*?)",".*",(\d{2}\.\d{2}\.\d{4})
Text:
"lorem ipsum dolor sit amet","Robert Farrell <rmfarrell@bogusemail.com>","",02.01.2024, ,5379,
"consectetur adipiscing elit","""Mesa, Rene <rmesa@bogusemail.com>""","",04.01.2024, ,20826,
"sed do eiusmod tempor incididunt","Antonio Bugan <antonio@bogusemail.com>","",04.01.2024, ,2856,
"ut labore et dolore magna aliqua","Crawley Down Tennis Club <hello@bogusemail.com>","",05.01.2024, ,4453,
Tools > List:
$2,$4\n
Result:
rmfarrell@bogusemail.com,02.01.2024
rmesa@bogusemail.com,04.01.2024
antonio@bogusemail.com,04.01.2024
hello@bogusemail.com,05.01.2024
Promemoria per l’utilizzo delle espressioni regolari
. - Any Character Except New Line
\d - Digit (0-9)
\D - Not a Digit (0-9)
\w - Word Character (a-z, A-Z, 0-9, _)
\W - Not a Word Character
\s - Whitespace (space, tab, newline)
\S - Not Whitespace (space, tab, newline)
\b - Word Boundary
\B - Not a Word Boundary
^ - Beginning of a String
$ - End of a String
[] - Matches Characters in brackets
[^ ] - Matches Characters NOT in brackets
| - Either Or
( ) - Group
Quantifiers:
* - 0 or More
+ - 1 or More
? - 0 or One
{3} - Exact Number
{3,4} - Range of Numbers (Minimum, Maximum)
fonte: github code snippets