De klus die me dit deed bouwen, kwam als een doorgestuurde e-mailketen van veertig berichten diep. Een klant wilde één enkele lijst van iedereen die in een thread van zes maanden was gekopieerd, zodat hij de groep naar een echte mailinglijst kon migreren. Elk adres stond daarbinnen, begraven in To: en Cc: regels, in handtekeningen, in geciteerde antwoorden, soms drie keer over Scrollen en met de hand kopiëren zou een middag duren en ik zou er nog een paar missen en er nog een paar dupliceren Wat ik eigenlijk nodig had was iets dat de hele klodder tekst zou lezen, elk e-mailadres erin zou vinden, de duplicaten weggooien en me een schone lijst zou overhandigen Dat is de e-mail extractor, en deze gids legt uit hoe het werkt en waarom de saaie details van de matching ertoe doen.
tl;dr: Een e-mail extractor scant een blok tekst en haalt elk e-mailadres dat het bevat eruit, geeft een gededupliceerde lijst terug die u kunt kopiëren De Toolz tool gaat verder, het extraheren van URL's, telefoonnummers en IPv4-adressen uit dezelfde tekst met dezelfde engine Het komt overeen met samengestelde reguliere expressies, stort hoofdletterongevoelig in en kan de uitvoer sorteren en verkleinen Alles draait client-side: geen upload, geen aanmelding, werkt offline.
Ik bouw SaaS-producten op Laravel en React en ik verzend WordPress-plug-ins, en een verrassende hoeveelheid van dat werk is het omzetten van ongestructureerde tekst in gestructureerde lijsten Een ondersteuning inbox export, een geschraapte pagina, een logbestand, een geplakt document: ze mengen allemaal de gegevens die je wilt met ruis eromheen Het is een kleine taak om de adressen, links of IP's uit die ruis te halen die je constant doet, en het doen met een reguliere expressie die je je elke keer half onthoudt en opnieuw typt is precies de wrijving die een browsertool zou moeten verwijderen Dus dit is de gids Ik wou dat ik de middag had dat de ketting met veertig berichten in mijn schoot landde.
Wat is een e-mail extractor?
Een e-mail extractor is een tool die vrije tekst leest en elk e-mailadres erin terugstuurt als een lijst Je plakt een blok tekst, of dat nu een e-mailthread, een webpagina, een CSV-dump, een chatlog of een pagina met broncode is, en de tool vindt elk adres met behulp van een patroon dat de vorm van een e-mail herkent: een lokaal deel, een at-teken en een domein dat eindigt in een geldig topniveaudomein In plaats van de tekst zelf te lezen en adressen één voor één te kopiëren, krijg je de hele set in één keer, waarbij duplicaten worden verwijderd.
De Toolz e-mail extractor is bewust meer dan e-mails Dezelfde scanning engine kan http en https URL's, telefoonnummers, en IPv4 adressen extraheren, omdat ze dezelfde klasse van probleem zijn: vind elke gebeurtenis van een bekend patroon in een muur van tekst en maak het een overzichtelijk Dat maakt het een algemeen extractiehulpprogramma in plaats van een single-trick tool Het kernidee is constant over alle vier de typen Definieer een nauwkeurig patroon voor hoe een geldige match eruit ziet, scan de tekst voor elke niet-overlappende gebeurtenis, vervolgens opschonen, de-dupliceren, en optioneel sorteer de resultaten in een lijst die u kunt plakken waar u het nodig hebt.
Waarom niet gewoon kijken of find-in-page gebruiken?
Omdat beide methoden falen op de manieren die er het meest toe doen Tekst lezen en adressen met de hand kopiëren is traag, en erger nog, het is onbetrouwbaar: je mist het adres dat in een handtekeningblok is gestopt, je kopieert dezelfde twee keer uit een geciteerd antwoord, en je kunt niet weten met hoeveel je er terecht had moeten komen Hoe groter de invoer, hoe slechter de kansen en de invoer die moet worden geëxtraheerd, zijn meestal de grote.
Browser find-in-page is hier niet beter voor Het belicht matches voor een string die je al kent, maar het hele punt van extractie is dat je de adressen niet van tevoren kent, dus er is niets om naar te zoeken Wat je nodig hebt is een patroon dat overeenkomt met de vorm van een e-mail ongeacht de exacte letters, wat precies is wat een reguliere expressie biedt Het correct schrijven van die expressie is zijn eigen kleine vaardigheid, en het enigszins verkeerd krijgen betekent ofwel het missen van geldige adressen of het vangen van rommel die er maar één lijkt Een speciale extractor bakt een getest patroon in zodat je het nooit opnieuw hoeft te typen, en koppelt het aan de-duplicatie zodat de lijst die je kopieert de lijst is die je kunt vertrouwen Als je het patroon zelf wilt begrijpen of aanpassen regex-tester hiermee kunt u uw eigen expressie plakken en deze in realtime zien overeenkomen met voorbeeldtekst.
Hoe nauwkeurig is de e-mail matching?
Dit is de vraag die beslist of een extractor nuttig of vervelend is, dus het is de moeite waard om precies te zijn Het e-mailadresformaat wordt gedefinieerd door RFC 5322, en de volledige grammatica is beroemd barok Het staat geciteerde lokale delen toe met spaties, opmerkingen tussen haakjes en andere vormen die technisch geldig zijn en nooit in echte gegevens verschijnen Een reguliere expressie die probeert de hele RFC te evenaren is enorm, en in de praktijk doet het meer kwaad dan goed, omdat het begint met het matchen van strings die geen enkele mailserver ooit zou accepteren.
De Toolz-extractor gebruikt de pragmatische subset waar de industrie zich op heeft gevestigd: een lokaal deel van letters, cijfers en de algemene interpunctie, een at-teken en een stippeldomein dat eindigt in een topniveaudomein van minimaal twee letters Dit is dezelfde vorm die de meeste validatiebibliotheken gebruiken, en komt overeen met de adressen die mensen daadwerkelijk hebben terwijl ze het geluid afwijzen. Het is een opzettelijke transactie. Je stopt met het matchen van de exotische formulieren die niet voorkomen om valse positieven te voorkomen op de formulieren die op e-mails lijken maar dat niet zijn. Voor het verwijderen van adressen uit echte documenten, wat de hele klus is, is dat handel ook de juiste is. Het hulpmiddel is eerlijk: dezelfde redenering is van toepassing op telefoonnummers, waar geen enkel formaat is een globaal formaat
Hoe extraheer ik e-mails uit tekst met de tool?
De stroom duurt ongeveer tien seconden Plak uw tekst in het invoervak, of klik op Voorbeeld laden om een uitgewerkt voorbeeld te zien dat e-mails, URL's, telefoonnummers en IP-adressen bevat die allemaal met elkaar zijn gemengd.
Kies wat u wilt extraheren met behulp van de rij knoppen bovenaan: e-mailadressen, URL's, telefoonnummers, IPv4-adressen of nummers De tool past het matchingpatroon voor dat type toe en negeert al het andere Stel vervolgens de lijstopties in Laat & quot; Verwijder duplicaten" op om herhaalde overeenkomsten samen te vouwen tot één item, wat bijna altijd is wat u wilt Schakel "Sort" om de lijst alfabetisch te ordenen, of op waarde wanneer u getallen uitpakt Schakel & quot;Lowercase" om e-mails en URL's zo te normaliseren [email protected] en [email protected] worden behandeld als één adres Kies hoe de resultaten worden samengevoegd: nieuwe regel voor een verticale lijst, komma voor een CSV-cel of een To: veld, ruimte of puntkomma voor de mailclients die dit verwachten.
Klik op Extraheren en de resultaten verschijnen met een telling van hoeveel overeenkomsten er zijn gevonden en hoeveel duplicaten zijn verwijderd Kopieer de lijst en plak deze waar deze ook moet gaan Dat is de hele lus, en omdat deze direct wordt uitgevoerd, kunt u tussen extractietypen op dezelfde tekst bladeren om e-mails, vervolgens URL's en vervolgens IP's te verwijderen, zonder iets opnieuw te plakken.
Wat kan ik eruit halen en wanneer zou ik ze allemaal gebruiken?
De vier extractietypen omvatten de gegevens die zich meestal in de tekst verbergen. Hier is wat iedereen overeenkomt en de situatie waarvoor het is.
| symboliseren | wedstrijd | Typisch gebruik |
|---|---|---|
| E-mailadressen | [email protected] in de praktische RFC-subset |
Een mailinglijst opbouwen vanuit een thread, contacten uit een export halen |
| URL's | http:// en https:// links, achterliggende interpunctie bijgesneden |
Het verzamelen van elke link van een pagina of document voor auditing |
| Telefoonnummers | Punten van 7+ cijfers met spaties, streepjes, stippen of haakjes | Contactnummers verzamelen van geschraapte of geplakte tekst |
| IPv4-adressen | Gestippelde quads waarbij elk octet begrensd is op 0-255 | Adressen uit een logbestand of een configuratiedump halen |
| getallen | Ondertekende gehele getallen en decimalen, met duizenden scheidingstekens | Cijfers uit een rapport of een als tekst geplakte tabel halen |
De e-mail en URL-types zijn degene die ik voor de meeste bereik, meestal samen: extraheer de e-mails om een contactenlijst op te bouwen, schakel vervolgens over naar URL's om elke link dezelfde documentreferenties te controleren Het type IPv4 verdient zijn plaats wanneer ik serverlogboeken lees en wil de unieke set adressen die een eindpunt raken, die op natuurlijke wijze paren met de URL-parser wanneer ik die verzoeken dan verder moet opsplitsen Het nummertype is een vreemde eend in de bijt maar echt handig om cijfers uit een rapport te tillen dat als platte tekst is geplakt in plaats van als spreadsheet, Welke je ook kiest, de opties voor deduplicatie en sortering werken op dezelfde manier, dus de uitvoer is altijd een schone, geordende lijst in plaats van ruwe overeenkomsten.
Hoe werkt de-duplicatie hier eigenlijk?
Deduplicatie klinkt triviaal totdat je casing overweegt Dezelfde persoon's adres kan verschijnen als [email protected] in één handtekening en [email protected] in een geciteerd antwoord, en een naïeve de-duplicaat dat strings precies vergelijkt zou beide houden Dat is verkeerd: e-mail lokale delen zijn hoofdletterongevoelig in elk praktisch mailsysteem, en domeinen zijn hoofdletterongevoelig per definitie Dus vergelijkt de extractor e-mails en URL's hoofdletterongevoelig bij het beslissen of twee overeenkomsten hetzelfde zijn, wat betekent dat die twee spellingen samenvallen tot één invoer, zelfs als je de kleine letteroptie niet hebt ingeschakeld.
De tool vertelt je ook wat het deed De telling boven de resultaten laat zowel zien hoeveel overeenkomsten het in totaal heeft gevonden als hoeveel duplicaten het heeft verwijderd, dus je raadt nooit of de lijst is gekrompen vanwege deduplicatie of omdat de invoer kleiner was dan je dacht Voor getallen en IP-adressen, waar de behuizing niet relevant is, is de vergelijking exact Dit is het soort detail dat onzichtbaar is als het werkt en woedend als het niet werkt, daarom is het de moeite waard om gelijk te krijgen in plaats van naar een vlakte te gaan Set van rauwe snaren Als je werk echt gaat over welke waarden in de ene lijst voorkomen, maar niet in de andere, in plaats van ze uit proza te halen, is de vergelijk twee lijsten tool stelt rekenkunde in op kolommen en past beter bij die specifieke vraag.
Is het veilig om uit gevoelige tekst online te halen?
Voor deze tool, ja, en de reden is hoe het is gebouwd in plaats van een beleid dat je moet nemen op geloof De tekst die je plakt wordt volledig gescand in je eigen browser met JavaScript Er is geen upload, geen server round trip, en niets is gelogd of opgeslagen U kunt het bevestigen door het openen van uw browser' s netwerk tab en klik op Uitpakken: geen verzoek verlaat de pagina Zodra de pagina is geladen kunt u offline gaan en het blijft werken.
Dit is meer van belang voor extractie dan voor bijna elk ander soort hulpmiddel, omdat de tekst die u plakt vaak vol zit met precies de gegevens die u niet zou willen lekken E-mailthreads bevatten privéadressen, logbestanden bevatten interne IP-adressen en hostnamen, en geplakte documenten bevatten telefoonnummers en namen Een extractor die die tekst uploadt naar een server om deze te verwerken, hoe goed bedoeld ook, verandert uw privécorrespondentie in iemand anders' s serverlog. De verwerking aan de clientzijde neemt het risico bij de root weg: de tekst verlaat uw machine nooit. Die standaard is opzettelijk voor elk hulpmiddel op Toolz.dev, en ik heb het volledige argument in de root uiteengezet gegevensprivacygids voor online tools als je de redenering in de diepte wilt Voor een bredere blik op hoe deze kleine hulpprogramma's in elkaar passen in een werkpakket, mijn Handleiding voor productiviteitstools voor loopt door de stukken.
Wat zijn de grenzen die het waard zijn om te weten?
Rechtstreeks zijn over limieten is een onderdeel van het vertrouwen op een tool, dus hier zijn de eerlijke randen Het e-mailpatroon komt overeen met de praktische subset van RFC 5322, niet de volledige grammatica, dus een technisch geldig maar exotisch adres met een geciteerd lokaal deel of een opmerking zal gemist worden Dat is een bewuste keuze om valse positieven te vermijden, en het beïnvloedt in wezen geen echt adres, maar het is een limiet en je moet weten dat het bestaat Telefoonnummers zijn de meest losse van de vijf typen, omdat er geen universeel formaat is; het patroon zoekt naar een serie van zeven of meer cijfers met gemeenschappelijke scheidingstekens, wat betekent dat het af en toe een lange identificatie kan vangen die geen telefoonnummer is, dus een blik op de telefoonresultaten is de moeite waard de seconde die het duurt.
De extractor werkt ook op tekst, niet op binaire bestanden Als je een PDF of een Word-document hebt, kopieer dan de tekst ervan en plak die; de tool kan het bestandsformaat zelf niet lezen En omdat alles in het browsergeheugen draait, zal een werkelijk enorme invoer worden beperkt door je browser in plaats van door de tool, hoewel mensen voor de e-mails, links en IP's dat plafond feitelijk extraheren ver boven wat je zult raken Geen van deze limieten bijt bij normaal gebruik. Als je ze kent, is dit slechts het verschil tussen het gebruik van de tool met vertrouwen en verrast worden door een randgeval.
Veelgestelde vragen
Hoe extraheer ik e-mailadressen uit tekst? Plak de tekst in de e-mail extractor en laat het type ingesteld op e-mailadressen Het scant de tekst met een e-mailpatroon, geeft een lijst van elk adres dat het vindt, verwijdert duplicaten, en laat u de schone lijst kopiëren Er is geen aanmelding of upload nodig, en het werkt offline eenmaal geladen.
Kan het ook URL's en telefoonnummers extraheren? Ja. schakel het extractietype over naar URL's, telefoonnummers, IPv4-adressen of nummers. Voor elk type past dezelfde engine een ander patroon toe, dus één tool verwerkt verschillende extractietaken uit hetzelfde tekstblok zonder het opnieuw te plakken.
Verwijdert het dubbele e-mails? Ja, wanneer de optie verwijderen-duplicaten is ingeschakeld Herhaalde overeenkomsten worden samengevoegd tot één invoer, en de tool rapporteert hoeveel duplicaten zijn verwijderd E-mails en URL's worden hoofdletterongevoelig op elkaar afgestemd, dus hetzelfde adres in verschillende letterbehuizingen wordt als één behandeld.
Hoe nauwkeurig is de e-mail matching? Het patroon komt overeen met de praktische subset van e-mailadressen die te zien zijn in echte gegevens: een lokaal deel, een at-teken en een gestippeld domein dat eindigt in een geldig topniveaudomein. Het implementeert niet de volledige RFC 5322-grammatica, die exotische vormen toestaat die in de praktijk nooit verschijnen en valse overeenkomsten zouden produceren op tekenreeksen die alleen op e-mails lijken.
Waarom worden sommige telefoonnummers vreemd gematcht? Telefoonnummers hebben geen enkel globaal formaat, dus het patroon zoekt naar een reeks van zeven of meer cijfers met spaties, streepjes, stippen of haakjes ertussen. Dit is opzettelijk breed, wat betekent dat het af en toe een lang nummer kan vangen dat geen telefoonnummer is, dus het is de moeite waard om de resultaten te bekijken bij het extraheren van telefoonnummers uit gemengde tekst.
Kan ik de uitgepakte lijst sorteren? Ja. zet de sorteeroptie aan om de lijst alfabetisch te ordenen, of op numerieke waarde bij het extraheren van getallen Combineer het met de optie verwijderen-duplicaten om een schone, bestelde, duplicaatvrije lijst klaar te krijgen om te kopiëren.
In welke formaten kan ik de resultaten kopiëren? U kunt de overeenkomsten met een nieuwe regel, komma, spatie of puntkomma, Kies nieuwe regel voor een verticale lijst, komma voor een CSV-cel of een To-veld, en puntkomma voor sommige e-mailclients De telling boven de uitvoer laat zien hoeveel overeenkomsten er zijn geëxtraheerd.
Worden de geëxtraheerde gegevens ergens geüpload? Nee De tekst wordt lokaal gescand in uw browser met JavaScript Niets wordt verzonden, gelogd of opgeslagen, en de tool blijft offline werken zodra deze is geladen, wat u kunt bevestigen door het tabblad netwerk te bekijken terwijl u uitpakt.



