Alle E-Mail-Adressen oder URLs aus einem Textblock ziehen
Veröffentlicht am 10.8.2026 · 12 Min. Lesezeit · Text- & Sprach-Tools
Daniel Okonkwo — Front-end-Entwickler und Tech-Redakteur bei Allin
Web-Performance · Dateiformate
Anhand von 4 Quellen geprüft
extract-urls sucht Textstücke, die mit http:// oder https:// beginnen und bis zu einem Leerzeichen, einem geraden Anführungszeichen, einem Apostroph, einer spitzen Klammer oder einer schließenden runden Klammer laufen. Diese Definition erklärt fast alles, was es richtig macht, und alles, was es falsch macht. Links in Klammern macht es richtig, Markdown-Links auch. Es behält den Punkt einer URL am Satzende, behält ein nachgestelltes Komma, Semikolon, Ausrufezeichen oder eine schließende eckige Klammer, und kürzt den Wikipedia-Artikel Fox_(animal) zu Fox_(animal — ein kaputter statt eines fehlenden Links, was schlimmer ist. Außerdem hat es kein Flag für Groß- und Kleinschreibung, ein als HTTPS://EXAMPLE.COM geschriebener Link in einem Großbuchstaben-Dokument wird also überhaupt nicht gefunden. Bloße www-Adressen ohne Schema werden ebenso wenig gefunden, und ftp- oder mailto-Links auch nicht. extract-emails verhält sich am Satzende umgekehrt: Weil sein Muster auf Buchstaben enden muss, bleibt ein abschließender Punkt korrekt draußen. Seine Zeichenklasse für den lokalen Teil ist aber reines ASCII, eine Adresse, die mit einem Akzentbuchstaben beginnt, kommt also gekürzt statt übersprungen zurück — ein bekannter französischer Vorname mit Zirkumflex ergab eine um drei Buchstaben kürzere Adresse, und ein Name mit Apostroph verlor alles vor dem Apostroph. Das sind falsche Adressen, keine Auslassungen, und es warnt nichts. Es liest auch die Zugangsdaten einer URL der Form benutzer:passwort@host als E-Mail-Adresse. Prüfe, was herauskommt, bevor du irgendetwas dorthin schickst.
Eine URL am Satzende behält den Punkt; eine E-Mail-Adresse am Ende desselben Satzes nicht. Ein akzentuierter Vorname in einer Adresse kommt abgeschnitten zurück. Jeder Fall hier lief durch die Werkzeuge, und die exakte Ausgabe steht dabei.
Wessen Daten das sind
Dieser Artikel richtet sich an Menschen, die Text verarbeiten, der ihnen bereits gehört — einen Kontaktexport aus einem System, das du verwaltest, eine Linkliste aus deinem eigenen Dokument, einen Satz Adressen, den eine Kundin dir zum Aufräumen geschickt hat. Adressen von fremden Webseiten einzusammeln, um eine Verteilerliste zu bauen, ist eine andere Tätigkeit mit eigenem rechtlichem Risiko: Nach der Datenschutz-Grundverordnung ist eine E-Mail-Adresse, die eine Person identifiziert, personenbezogenes Datum, gleich auf welcher Seite sie veröffentlicht wurde, und die Anti-Spam-Regeln für unerwünschte Werbepost kommen obendrauf. Mehr wird dazu hier nicht gesagt.
Der praktische Grund, es überhaupt zu sagen: Beide Werkzeuge laufen vollständig in der Seite, auf deinem Rechner, ohne dass etwas hochgeladen wird. Das ist eine echte Datenschutzeigenschaft, wenn der Text eine Kundenliste ist, und darüber lohnt es sich Bescheid zu wissen. Eine rechtliche Erlaubnis ist es nicht, und beide Dinge werden oft genug vermengt, um sie in einem Satz zu trennen, bevor es darum geht, was die Werkzeuge wirklich tun.
Wo eine URL endet, ist geraten — und hier hängt es an fünf Zeichen
Der WHATWG-URL-Standard definiert, was eine URL ist und wie man eine bereits isolierte parst. Er definiert nicht, wie man eine mitten in einem Absatz findet, denn diese Frage hat keine richtige Antwort: Ein Punkt nach einer URL ist für Lesende Interpunktion und für einen Parser ein zulässiges Pfadzeichen, und in den Bytes unterscheidet sie nichts. Jeder Extraktor wählt daher eine Menge von Zeichen, an denen er aufhört. Dieser hört bei Leerraum, geradem Anführungszeichen, Apostroph, beiden spitzen Klammern und der schließenden runden Klammer auf — geprüft an fünfzehn Kontexten, um zu sehen, wohin das führt.
Die schließende runde Klammer auszuschließen kauft zwei wichtige Fälle. Ein Link in Klammern kommt sauber heraus, und ein Markdown-Link aus Text in eckigen Klammern gefolgt von der Adresse in runden ebenso. Es kostet einen Fall, und der Preis ist schlimmer, als der Gewinn gut ist: Eine Adresse, die im Pfad zu Recht Klammern enthält — die Begriffsklärungskonvention der Wikipedia ist das Alltagsbeispiel —, wird am Partner der öffnenden Klammer abgeschnitten und gekürzt zurückgegeben. Eine gekürzte URL sieht immer noch wie eine URL aus. Sie landet in einer Tabelle, wird angeklickt und erzeugt Wochen später eine Seite-nicht-gefunden, ohne dass sich die Ursache zurückverfolgen ließe.
Die Zeichen, die es nicht ausschließt, sind genau die, die gewöhnliches Schreiben interpunktieren. Eine URL am Satzende kam mit angehängtem Punkt zurück. Ebenso eine mit folgendem Komma, eine mit Semikolon, eine mit Ausrufezeichen, eine in eckigen Klammern, eine in typografischen Anführungszeichen, eine in Markdown-Unterstrichen und eine in Backticks. Französische Guillemets überstehen es, aber nur, weil sie konventionell mit je einem Leerzeichen gesetzt werden, und dieses Leerzeichen stoppt den Treffer. Keiner dieser Fälle erzeugt einen Fehler; sie erzeugen eine leicht falsche Zeichenkette, die von Hand gesäubert werden muss.
Der Großbuchstaben-Link, der nie gefunden wird
Das Muster ist klein geschrieben und trägt kein Flag für Groß- und Kleinschreibung. Text mit HTTPS://EXAMPLE.COM/A ergab überhaupt nichts. Ebenso Https://example.com/a mit einem einzigen Großbuchstaben, was manche Textverarbeitungen erzeugen, wenn ein Link einen Satz beginnt und die automatische Großschreibung an ist. Das ist kein Randfall; das ist eine ganze Dokumentgattung — Pressemitteilungen, Rechtshinweise, alles in einem Hausstil, der schreit —, aus der dieses Werkzeug null Links zieht und kein Problem meldet. Der URL-Standard sagt ausdrücklich, dass das Schema nach dem Kleinschreiben verglichen wird: Ein Schema in Großbuchstaben ist eine normale, gültige URL, keine fehlerhafte.
Drei weitere Auslassungen sind Absicht statt Unfall, und es hilft zu wissen, welche welche ist. Eine bloße Adresse aus www plus Domain hat kein Schema, passt also nicht — und könnte es nicht, ohne dass das Werkzeug rät, jedes Wort mit Punkten sei ein Host. Ein ftp-Link passt nicht. Ein mailto-Link passt nicht, obwohl extract-emails die Adresse bereitwillig herauszieht. Ist deine Quelle eine von Menschen geschriebene Kontaktseite und keine maschinelle, rechne damit, dass die bloßen Adressen die Mehrheit sind, und plane einen zweiten Durchgang mit extract-domain ein, das nach ihnen sucht.
Die akzentuierte Adresse, die falsch zurückkommt
extract-emails sucht eine Folge aus Buchstaben, Ziffern, Punkten, Unterstrichen, Prozentzeichen, Pluszeichen und Bindestrichen, dann ein At-Zeichen, dann einen Host, dann einen Punkt und mindestens zwei Buchstaben. Ein Plus-Tag überlebt, was zählt, weil viele Leute ihre Abonnements so kennzeichnen. Ein abschließender Punkt bleibt korrekt draußen, weil das Muster auf Buchstaben enden muss — derselbe Satz, der einer URL einen ungewollten Punkt anhängt, gibt einer Adresse ein sauberes Ende: eine hübsche Illustration dafür, wie viel die Form des Musters entscheidet.
Der lokale Teil ist reines ASCII, und dort kippt es von unvollständig zu falsch. Weil ein regulärer Ausdruck irgendwo in der Zeile nach einem Treffer sucht, statt das ganze Token zu verlangen, scheitert eine Adresse mit akzentuiertem ersten Buchstaben nicht — sie trifft ab kurz nach dem Akzentbuchstaben. Ein deutscher Vorname mit Umlaut ergab eine Adresse aus den letzten zwei Buchstaben des Namens plus At-Zeichen und Host. Ein französischer Name mit Cedille verlor seine ersten drei Buchstaben. Ein portugiesischer Name mit Tilde behielt nur seinen letzten. Und ein Nachname mit Apostroph gab nur den Teil nach dem Apostroph zurück. Jede davon ist eine syntaktisch gültige Adresse, die jemand anderem oder niemandem gehört, und nichts in der Ausgabe markiert das.
Die Domain-Hälfte hat das Spiegelproblem und scheitert sicherer. Ein Host, der mit Akzentbuchstaben im eigenen Alphabet geschrieben ist — die internationalisierten Domainnamen, die RFC 5890 definiert und RFC 6532 in Mail-Headern erlaubt —, passt gar nicht, die Adresse wird also übersprungen statt verstümmelt. In der Punycode-Form geschrieben, beginnend mit dem Präfix x-n, passt derselbe Host einwandfrei, denn Punycode ist konstruktionsbedingt ASCII. Zwei kleinere Notizen aus den Läufen: Ein in Anführungszeichen gesetzter lokaler Teil, den RFC 5322 erlaubt, wird nicht erkannt; und eine gemischt geschriebene Adresse und ihr kleingeschriebener Zwilling überstehen beide die Entdopplung, weil exakt verglichen wird, die Domain-Hälfte laut Spezifikation aber unabhängig von der Schreibweise ist — die zwei sind ein Postfach, zweimal gelistet.
Domains und Telefonnummern, kurz
extract-domain deckt die Lücke, die der URL-Extraktor lässt: Es liest Hosts aus Links mit Schema, aus E-Mail-Adressen und — mit einem voreingestellt eingeschalteten Schalter — aus bloßen Domains ganz ohne Schema. Es entfernt Benutzer und Passwort vor einem Host, den Port dahinter, den abschließenden Wurzelpunkt und wahlweise ein führendes www. All das wurde an einer Zeile mit einer Intranetadresse samt Zugangsdaten bestätigt. Es lehnt außerdem eine Liste von Dateiendungen ab, damit ein Bild oder eine Seitendatei nicht als Domain gelesen wird, und die Endungen auf der Liste werden auch übersprungen.
Zwei Mängel sind meldenswert. Erstens wird eine bloße Domain am Satzende komplett übersehen: Das Muster für bloße Domains weigert sich, vor einem Punkt zu stoppen, ein Satz, der auf eine Domain plus Punkt endet, ergab also nichts, während dieselbe Domain mitten im Satz, vor einem Komma oder vor einem Ausrufezeichen gefunden wurde. Das ist die häufigste Art, wie eine Domain in einem Text auftaucht, und genau dieser Fall wird nicht behandelt. Zweitens ist die Liste der Dateiendungen eine feste Liste und keine Regel, Endungen außerhalb der Liste werden also als Domains gelesen: Eine Archivdatei und eine Videodatei kamen zurück, als wären sie Hosts. Keines der beiden Probleme erzeugt eine Fehlermeldung.
extract-phone-numbers ist das vorsichtigste der vier. Es trifft vier bestimmte Formen statt irgendeiner Ziffernfolge, verlangt nach dem Entfernen der Interpunktion zwischen sieben und fünfzehn Ziffern, und es wurde geprüft, dass es Datumsangaben sowohl in Jahr-Monat-Tag als auch in Tag/Monat in Ruhe lässt und eine lange Referenznummer ebenfalls. Was es nicht kann, ist eine Rufnummer von etwas zu unterscheiden, das genau wie eine geformt ist — eine Bestellreferenz aus drei, drei und vier Ziffern kam als nordamerikanische Nummer zurück, und im Text sagt nichts das Gegenteil. Lies seine Ausgabe, statt ihr zu vertrauen — der Satz, bei dem dieser ganze Artikel immer wieder landet.
| Eingabe | Was herauskommt | Warum |
|---|---|---|
| Ein Link am Satzende, in extract-urls | Der Link mit angehängtem Punkt | Die Stoppmenge ist Leerraum, Anführungszeichen, Apostroph, spitze Klammern und schließende runde Klammer — kein Punkt |
| Ein Link in Klammern oder ein Markdown-Link | Sauber, ohne die Klammer | Die schließende runde Klammer ist in der Stoppmenge |
| Ein Wikipedia-Artikel, dessen Pfad in Klammern endet | An der schließenden Klammer gekürzt — ein kaputter, kein fehlender Link | Dieselbe Regel, die Links in Klammern rettet, zerbricht diesen |
| Ein Link mit Schema in Großbuchstaben | Überhaupt nichts | Das Muster ist kleingeschrieben und hat kein Flag für Groß- und Kleinschreibung |
| Eine Adresse mit Plus-Tag vor dem At-Zeichen | Vollständig extrahiert, samt Tag | Das Pluszeichen steht in der Zeichenklasse des lokalen Teils |
| Eine Adresse, deren Vorname Umlaut, Cedille oder Tilde trägt | Eine kürzere, syntaktisch gültige, falsche Adresse — ohne Warnung | Die Klasse des lokalen Teils ist ASCII, der Treffer beginnt einfach nach dem Akzentbuchstaben |
| Eine Adresse auf einem Host in akzentuiertem Alphabet | Nichts — aber die Punycode-Schreibweise desselben Hosts funktioniert | Überspringen ist sicherer als Verstümmeln; Punycode ist konstruktionsbedingt ASCII |
| Eine URL mit Benutzername und Passwort vor dem Host | extract-emails meldet Passwort und Host als E-Mail-Adresse | Ein At-Zeichen zwischen zwei plausibel wirkenden Zeichenfolgen genügt dem Muster |
| Eine bloße Domain am Satzende, in extract-domain | Nichts — dieselbe Domain vor einem Komma wird aber gefunden | Das Muster für bloße Domains weigert sich, vor einem Punkt zu stoppen, und der Satzpunkt ist einer |
Häufige Fragen
- Warum kamen meine extrahierten Links mit einem Punkt oder Komma am Ende heraus?
- Weil der Extraktor bei Leerraum, Anführungszeichen, spitzen Klammern und einer schließenden runden Klammer aufhört — und sonst nirgends. Satzzeichen sind für das Muster zulässige Pfadzeichen, der Punkt am Satzende wird also zum letzten Zeichen des Links. Eine Einstellung dafür gibt es nicht. Die praktische Abhilfe ist ein Suchen-und-Ersetzen-Durchgang über die extrahierte Liste oder ein manuelles Kürzen bei kurzen Listen. Extrahierte E-Mail-Adressen trifft das Problem nicht, denn ihr Muster muss auf Buchstaben enden, ein abschließender Punkt kann also nicht Teil eines Treffers sein.
- Manche Links in meinem Dokument wurden gar nicht gefunden. Was hatten sie gemeinsam?
- Prüfe zuerst das Schema. Ein Link, dessen Schema irgendeinen Großbuchstaben trägt, ist für dieses Werkzeug unsichtbar — eine durchgehend groß geschriebene Adresse ergab im Test gar nichts, und eine mit einem einzigen führenden Großbuchstaben ebenso wenig, was Textverarbeitungen erzeugen, wenn ein Link einen Satz eröffnet. Suche dann nach Links ohne Schema: Eine bloße Adresse, die mit www beginnt, passt nicht, weil das Muster das Protokoll verlangt. Und ftp- sowie mailto-Links liegen absichtlich außerhalb seines Auftrags. Das Dokument vor dem Extrahieren kleinzuschreiben behebt das Erste; extract-domain, das bloße Hosts sucht, deckt das Meiste des Zweiten ab.
- Sind die zurückgegebenen Adressen so verwendbar?
- Nicht ohne Hinsehen. Der Extraktor garantiert, dass jedes Ergebnis zu seinem Muster passt, nicht, dass jedes Ergebnis eine Adresse ist, die jemandem gehört. Zwei Fehlermodi wurden direkt beobachtet: Eine Adresse, deren lokaler Teil mit einem Akzentbuchstaben beginnt, kommt gekürzt zurück und ergibt eine gültig wirkende Adresse, die nicht die im Text ist; und die Zugangsdaten einer URL der Form Benutzer, Doppelpunkt, Passwort, At-Zeichen, Host kommen zurück, als wären sie eine Adresse. Bei kurzen Listen: lies sie. Bei langen: sortiere und schau auf die Enden — gekürzte Adressen sammeln sich oben, weil sie kurz sind, und die erfundenen teilen oft einen Host, den du als Server und nicht als Mailanbieter erkennst.
- Dekodiert es die Ampersand-Entität in einer Query-Zeichenkette?
- Nein. Eine aus HTML-Quelltext kopierte URL, in der der Trenner zwischen zwei Parametern als Ampersand-Entität statt als Zeichen steht, kommt mit intakter Entität zurück — getestet, die fünf Zeichen bleiben exakt erhalten. Das Ergebnis ist ein Link, der mit Parameternamen angefordert wird, die mit „amp Semikolon“ beginnen, was meist heißt, dass der Server den zweiten Parameter stillschweigend ignoriert. Ist deine Quelle HTML statt gerendertem Text, dekodiere zuerst die Entitäten; ist es aus einer gerenderten Seite kopierter Text, hat der Browser sie bereits dekodiert und es ist nichts zu tun.
- Kann ich diese Werkzeuge auf Adressen anwenden, die ich von fremden Websites gesammelt habe?
- Die Werkzeuge verarbeiten, was du einfügst; ob du diese Adressen sammeln und verwenden darfst, ist eine getrennte und keine technische Frage. In der Europäischen Union ist eine E-Mail-Adresse, die eine Person identifiziert, personenbezogenes Datum nach der Datenschutz-Grundverordnung, gleich auf welcher Seite sie stand, und die Regeln für unerwünschte Werbepost gelten unabhängig davon. In den Vereinigten Staaten sind die entsprechenden Werbepost-Regeln bundesrechtlich. Gehört die Liste dir — dein eigener Export, dein eigenes Dokument, Kundendaten, mit deren Bereinigung du beauftragt bist —, stellt sich nichts davon, und für diese Lage wurde dieser Artikel geschrieben. Andernfalls ist die zu beantwortende Frage eine rechtliche, und die Tatsache, dass die Seite öffentlich war, beantwortet sie nicht.
Artikel, die dich interessieren könnten
Alle Ratgeber →Ähnliche Tools
Alles hier beschreibt, was diese Werkzeuge heute tun — geprüft, indem ihre eigenen Transformationen mit genau den in jedem Artikel abgedruckten Eingaben ausgeführt wurden — und nicht, was ein Standard einem Textwerkzeug vorschreibt. Zeilenweise Textverarbeitung hat keine einzige Instanz: Was als Leerraum zählt, ob zwei akzentuierte Zeilen dieselbe Zeile sind und wo eine URL im Fließtext endet, entscheidet jedes Programm anders, in das du je etwas einfügen wirst. Wo ein Werkzeug einen Fall falsch behandelt, wird das offen gesagt statt umgangen. Bevor du irgendetwas davon über eine Liste laufen lässt, die du nicht neu exportieren kannst, lauf über eine Kopie und vergleiche die Zeilenzahl an beiden Enden.
Quellen
Hast du einen Fehler in diesem Artikel entdeckt?