Il lavoro che mi ha fatto costruire questo è arrivato come una catena di posta elettronica inoltrata profonda quaranta messaggi Un cliente voleva un unico elenco di tutti coloro che erano stati copiati su un thread di sei mesi in modo da poter migrare il gruppo verso una vera e propria mailing list Ogni indirizzo era lì dentro, sepolto in To: e Cc: righe, in firme, in risposte citate, a volte tre volte. Scorrendo e copiando a mano ci sarebbe voluto un pomeriggio e ne perdevo ancora alcuni e ne duplicavo altri. Ciò di cui avevo effettivamente bisogno era qualcosa che leggesse l'intero blob di testo, trovasse ogni indirizzo email al suo interno, buttasse via i duplicati e mi consegnasse una lista pulita. Questo è il estrattore e-mail, e questa guida spiega come funziona e perché i dettagli noiosi della corrispondenza contano.
tl; dr: Un estrattore di posta elettronica esegue la scansione di un blocco di testo ed estrae ogni indirizzo e-mail in esso contenuto, restituendo un elenco deduplicato che è possibile copiare Lo strumento Toolz va oltre, estraendo URL, numeri di telefono e indirizzi IPv4 dallo stesso testo con lo stesso motore Corrisponde alle espressioni regolari curate, comprime i duplicati in modo insensibile al caso e può ordinare e ridurre l'output Tutto viene eseguito lato client: nessun upload, nessuna registrazione, funziona offline.
Costruisco prodotti SaaS su Laravel e React e spedisco plugin WordPress, e una quantità sorprendente di quel lavoro sta trasformando il testo non strutturato in elenchi strutturati Un'esportazione di caselle di supporto, una pagina raschiata, un file di registro, un documento incollato: tutti mescolano i dati che desideri con il rumore attorno Tirando gli indirizzi, i collegamenti o gli IP fuori da quel rumore è un piccolo compito che fai costantemente, e farlo con un'espressione regolare che ricordi a metà e ridigiti ogni volta è esattamente l'attrito che uno strumento del browser dovrebbe rimuovere Quindi questa è la guida che vorrei avere il pomeriggio in cui la catena di quaranta messaggi è atterrata in grembo.
Che cosa è un estrattore di posta elettronica?
Un estrattore di posta elettronica è uno strumento che legge il testo libero e restituisce ogni indirizzo e-mail al suo interno come elenco Incolli un blocco di testo, che si tratti di un thread di posta elettronica, di una pagina Web, di un dump CSV, di un registro di chat o di una pagina di codice sorgente, e lo strumento trova ogni indirizzo utilizzando un modello che riconosce la forma di un'e-mail: una parte locale, un segno at e un dominio che termina con un dominio di primo livello valido Invece di leggere il testo da soli e copiare gli indirizzi uno alla volta, ottieni l'intero set in una volta, con i duplicati rimossi.
Il Toolz estrattore e-mail è deliberatamente più che email Lo stesso motore di scansione può estrarre URL http e https, numeri di telefono e indirizzi IPv4, perché sono la stessa classe di problemi: trova ogni occorrenza di un modello noto in una parete di testo ed elencalo in modo pulito Ciò lo rende un'utilità di estrazione generale piuttosto che uno strumento a trucco singolo L'idea principale è costante in tutti e quattro i tipi Definire un modello preciso per l'aspetto di una corrispondenza valida, scansionare il testo per ogni occorrenza non sovrapposta, quindi pulire, deduplicare e facoltativamente ordinare i risultati in un elenco che puoi incollare ovunque ne hai bisogno.
Perché non limitarsi a guardarlo o utilizzare il find-in-page?
Perché entrambi i metodi falliscono nei modi che contano di più Leggere il testo e copiare gli indirizzi a mano è lento, e peggio, è inaffidabile: ti manca l'indirizzo nascosto all'interno di un blocco di firma, copi lo stesso due volte da una risposta citata, e non hai modo di sapere con quanti avresti dovuto finire Più grande è l'input, peggiori sono le probabilità, e gli input che devono essere estratti sono di solito quelli grandi.
Il "trova-in-pagina" del browser non è migliore per questo Evidenzia le corrispondenze per una stringa che già conosci, ma il punto centrale dell'estrazione è che non conosci gli indirizzi in anticipo, quindi non c'è nulla da cercare Quello che ti serve è un modello che corrisponda alla forma di un'email indipendentemente dalle sue lettere esatte, che è esattamente ciò che fornisce un'espressione regolare Scrivere quell'espressione correttamente è una sua piccola abilità, e sbagliarla leggermente significa o mancare indirizzi validi o catturare spazzatura che ne assomiglia solo una Un estrattore dedicato cuoce un modello testato in modo da non doverlo mai riscrivere, e lo accoppia con la de-duplicazione in modo che l'elenco che copi sia l'elenco di cui ti puoi fidare Se vuoi capire o regolare il modello stesso, il modello stesso tester regex ti consente di incollare la tua espressione e guardarla corrispondere al testo di esempio in tempo reale.
Quanto è accurata la corrispondenza dell'email?
Questa è la domanda che decide se un estrattore è utile o fastidioso, quindi vale la pena essere precisi Il formato dell'indirizzo email è definito da RFC 5322, e la grammatica completa è notoriamente barocca Permette parti locali citate con spazi, commenti tra parentesi e altre forme che sono tecnicamente valide e non appaiono mai una volta nei dati reali Un'espressione regolare che cerca di abbinare l'intera RFC è enorme, e in pratica fa più male che bene, perché inizia a corrispondere stringhe che nessun server di posta accetterebbe mai.
L'estrattore Toolz utilizza il sottoinsieme pragmatico su cui l'industria si è stabilita: una parte locale di lettere, cifre e la punteggiatura comune, un segno at e un dominio puntato che termina in un dominio di primo livello di almeno due lettere Questa è la stessa forma che utilizzano la maggior parte delle librerie di convalida, e corrisponde agli indirizzi che le persone effettivamente hanno rifiutando il rumore È un commercio deliberato Si rinuncia a corrispondere alle forme esotiche che non si verificano al fine di evitare falsi positivi sui moduli che sembrano email ma non lo sono Per estrarre indirizzi da documenti reali, che è l'intero lavoro, che il commercio è quello giusto Lo strumento è onesto anche al riguardo: lo stesso ragionamento vale per i numeri di telefono, dove non esiste un unico formato globale, quindi il modello è intenzionalmente ampio e occasionalmente cattura un numero lungo che non è un numero di telefono, motivo per cui la revisione dei risultati telefonici vale un momento.
Come faccio a estrarre le email dal testo con lo strumento?
Il flusso richiede una decina di secondi Incolla il tuo testo nella casella di input, oppure fai clic su Carica campione per visualizzare un esempio funzionante che contiene e-mail, URL, numeri di telefono e indirizzi IP tutti mescolati insieme.
Scegli cosa estrarre utilizzando la riga di pulsanti in alto: indirizzi email, URL, numeri di telefono, indirizzi IPv4 o numeri Lo strumento applica il modello di corrispondenza per quel tipo e ignora tutto il resto Quindi imposta le opzioni di elenco Lascia & quot; Rimuovi duplicati& quot; su per comprimere le corrispondenze ripetute in un'unica voce, che è quasi sempre ciò che desideri Attiva & quot; Ordina& quot; per ordinare l'elenco in ordine alfabetico, o per valore quando stai estraendo i numeri Attiva & quot; Lowercase& quot; per normalizzare le email e gli URL in modo [email protected] e [email protected] vengono trattati come un unico indirizzo Scegli come vengono uniti i risultati: nuova riga per un elenco verticale, virgola per una cella CSV o a To: campo, spazio o punto e virgola per i client di posta che se lo aspettano.
Fai clic su Estrai e i risultati vengono visualizzati con un conteggio di quante corrispondenze sono state trovate e quanti duplicati sono stati rimossi Copia l'elenco e incollalo ovunque sia necessario andare Questo è l'intero ciclo e poiché viene eseguito istantaneamente puoi passare da un tipo di estrazione all'altro sullo stesso testo per estrarre e-mail, quindi URL, quindi IP, senza re-incollare nulla.
Cosa posso estrarre e quando li userei?
I quattro tipi di estrazione coprono i dati che più spesso si nascondono all'interno del testo Ecco cosa corrisponde a ciascuno e la situazione a cui serve.
| tipo | fiammiferi | Uso tipico |
|---|---|---|
| Indirizzi email | [email protected] nel sottoinsieme pratico RFC |
Costruire una mailing list da un thread, estraendo contatti da un'esportazione |
| URL | http:// e https:// collegamenti, punteggiatura finale ridotta |
Raccolta di ogni collegamento da una pagina o da un documento per il controllo |
| Numeri di telefono | Esegue oltre 7 cifre con spazi, trattini, punti o parentesi | Raccolta di numeri di contatto da testo raschiato o incollato |
| Indirizzi IPv4 | Quad punteggiati con ogni ottetto limitato a 0-255 | Estrazione degli indirizzi da un file di registro o da un dump di configurazione |
| numeri | Interi e decimali firmati, con migliaia di separatori | Estrazione di cifre da un rapporto o da una tabella incollata come testo |
I tipi di email e URL sono quelli che raggiungo di più, di solito insieme: estrai le email per costruire un elenco di contatti, quindi passa agli URL per controllare ogni link con gli stessi riferimenti di documenti Il tipo IPv4 guadagna il suo posto quando sto leggendo i log dei server e voglio l'insieme unico di indirizzi che colpiscono un endpoint, che si accoppia naturalmente con il Parser URL quando poi ho bisogno di suddividere ulteriormente quelle richieste Il tipo di numero è quello dispari ma genuinamente pratico per sollevare le figure da un rapporto che è stato incollato come testo semplice invece di un foglio di calcolo Qualunque cosa tu scelga, le opzioni di de-duplicazione e ordinamento funzionano allo stesso modo, quindi l'output è sempre un elenco pulito e ordinato piuttosto che corrispondenze grezze.
Come funziona effettivamente la deduplicazione qui?
La deduplicazione suona banale finché non consideri l'involucro. La stessa persona e l'indirizzo n. 39 possono apparire come [email protected] in una firma e [email protected] in una risposta citata, e un ingenuo de-duplicato che confronta le stringhe esattamente le manterrebbe entrambe. Questo è sbagliato: le parti locali dell'e-mail sono insensibili al caso in ogni sistema di posta pratico e i domini sono insensibili al caso per definizione Quindi l'estrattore confronta le e-mail e gli URL in modo insensibile al caso quando decide se due corrispondenze sono uguali, il che significa che queste due ortografie crollano in una voce anche se non hai attivato l'opzione minuscola.
Lo strumento ti dice anche cosa ha fatto Il conteggio sopra i risultati mostra sia quante corrispondenze ha trovato in totale sia quanti duplicati ha rimosso, quindi non stai mai indovinando se l'elenco si è ridotto a causa della de-duplicazione o perché l'input era più piccolo di quanto pensassi Per numeri e indirizzi IP, dove l'involucro è irrilevante, il confronto è esatto Questo è il tipo di dettaglio che è invisibile quando funziona e esasperante quando non funziona, motivo per cui vale la pena ottenere a destra piuttosto che lasciare a un piano Set di corde grezze Se il tuo lavoro riguarda davvero quali valori appaiono in un elenco ma non in un altro invece di tirarli fuori dalla prosa, il confronta due elenchi strumento imposta l'aritmetica sulle colonne ed è la soluzione migliore per quella domanda specifica.
È sicuro estrarre da testo sensibile online?
Per questo strumento, sì, e il motivo è come è costruito piuttosto che una politica che devi prendere in fede Il testo che incolli viene scansionato interamente nel tuo browser con JavaScript Non c'è caricamento, nessun server di andata e ritorno, e nulla è registrato o memorizzato Puoi confermarlo aprendo il tuo browser's scheda di rete e facendo clic su Estrai: nessuna richiesta lascia la pagina Una volta caricata la pagina puoi andare offline e continua a funzionare.
Questo è importante più per l'estrazione che per quasi ogni altro tipo di strumento, perché il testo che incolli è spesso pieno esattamente dei dati che non vorresti far trapelare I thread di posta elettronica contengono indirizzi privati, i file di registro contengono indirizzi IP interni e nomi host e i documenti incollati contengono numeri di telefono e nomi Un estrattore che carica quel testo su un server per elaborarlo, per quanto ben intenzionato, trasforma la tua corrispondenza privata in qualcun altro's server log L'elaborazione lato client rimuove il rischio alla radice: il testo non lascia mai la tua macchina Tale impostazione predefinita è deliberata su ogni strumento su Toolz.dev e ho esposto l'argomento completo nel guida alla privacy dei dati per gli strumenti online se volete il ragionamento in profondità Per uno sguardo più ampio su come queste piccole utility si incastrano in un kit di lavoro, il mio Guida agli strumenti di produttività per gli sviluppatori cammina tra i pezzi.
Quali sono i limiti che vale la pena conoscere?
Essere dritti sui limiti fa parte della fiducia in uno strumento, quindi ecco i bordi onesti Il modello di posta elettronica corrisponde al sottoinsieme pratico di RFC 5322, non la grammatica completa, quindi un indirizzo tecnicamente valido ma esotico con una parte locale quotata o un commento sarà perso Questa è una scelta deliberata per evitare falsi positivi, e colpisce essenzialmente nessun indirizzo reale, ma è un limite e si dovrebbe sapere che esiste I numeri di telefono sono il più sciolto dei cinque tipi, perché non esiste un formato universale; il modello cerca una serie di sette o più cifre con separatori comuni, il che significa che può occasionalmente catturare un identificatore lungo che non è un numero di telefono, quindi uno sguardo ai risultati del telefono vale la seconda volta che ci vuole.
L'estrattore funziona anche su testo, non su file binari Se si dispone di un PDF o di un documento Word, copiare il suo testo e incollare che; lo strumento non può leggere il formato di file stesso E perché tutto viene eseguito nella memoria del browser, un input genuinamente enorme sarà limitato dal browser piuttosto che dallo strumento, anche se per le e-mail, i collegamenti e gli IP le persone effettivamente estrarre quel soffitto è molto al di sopra di quello che si colpirà Nessuno di questi limiti morde in uso normale Conoscerli è solo la differenza tra l'utilizzo dello strumento con fiducia e di essere sorpresi da un caso limite.
Domande frequenti
Come faccio a estrarre gli indirizzi email dal testo? Incolla il testo nel estrattore e-mail e lasciare il tipo impostato agli indirizzi e-mail Scansiona il testo con un modello di e-mail, elenca ogni indirizzo che trova, rimuove i duplicati e consente di copiare l'elenco pulito Non è necessaria alcuna registrazione o caricamento e funziona offline una volta caricato.
Può estrarre anche URL e numeri di telefono? Sì. Passa il tipo di estrazione a URL, numeri di telefono, indirizzi IPv4 o numeri Lo stesso motore applica un modello diverso per ogni tipo, quindi uno strumento gestisce diversi processi di estrazione dallo stesso blocco di testo senza re-incollarlo.
Rimuove le email duplicate? Sì, quando l'opzione rimuovi-duplica è attiva Le corrispondenze ripetute vengono ridotte a una singola voce e lo strumento riporta quanti duplicati sono stati rimossi Le e-mail e gli URL vengono abbinati in modo non sensibile al caso, quindi lo stesso indirizzo in un involucro di lettere diverso viene trattato come uno solo.
Quanto è accurata la corrispondenza dell'email? Il modello corrisponde al sottoinsieme pratico di indirizzi e-mail visti nei dati reali: una parte locale, un segno at e un dominio tratteggiato che termina in un dominio di primo livello valido Non implementa la grammatica RFC 5322 completa, che consente forme esotiche che non appaiono mai in pratica e produrrebbe false corrispondenze su stringhe che sembrano solo e-mail.
Perché alcuni numeri di telefono sono abbinati in modo strano? I numeri di telefono non hanno un unico formato globale, quindi il modello cerca una serie di sette o più cifre con spazi, trattini, punti o parentesi tra di loro Questo è deliberatamente ampio, il che significa che occasionalmente può catturare un numero lungo che non è un numero di telefono, quindi vale la pena rivedere i risultati quando si estraggono numeri di telefono da testo misto.
Posso ordinare l'elenco estratto? Sì. Attiva l'opzione ordina per ordinare l'elenco in ordine alfabetico o in base al valore numerico durante l'estrazione dei numeri Combinala con l'opzione rimuovi duplicati per ottenere un elenco pulito, ordinato e senza duplicati pronto per la copia.
In quali formati posso copiare i risultati? È possibile unire le corrispondenze con una nuova riga, virgola, spazio o punto e virgola Scegli nuova riga per un elenco verticale, virgola per una cella CSV o un campo To e punto e virgola per alcuni client di posta Il conteggio sopra l'output mostra quante corrispondenze sono state estratte.
I dati estratti vengono caricati da qualche parte? No. Il testo viene scansionato localmente nel browser con JavaScript, Nulla viene trasmesso, registrato o memorizzato e lo strumento continua a funzionare offline una volta caricato, cosa che è possibile confermare guardando la scheda di rete mentre si estrae.



