Tekst

URL's

Wat is de URL-extractor?

Je hebt een e-mailthread van 200 regels, een Slack-channel-export, een logbestand, een transcript van klantenservice of wat markdown-notities — en je wilt elke URL die erin staat, in volgorde, zonder dubbele, klaar om ergens anders te plakken. Misschien houd je bij welke links een klant heeft aangeklikt. Misschien loop je vóór publicatie nog een document na op uitgaande verwijzingen. Misschien gooi je de URL's in een crawler. Wat het ook is, je hebt geen zin om 40 keer te scrollen en kopiëren-plakken. Gooi de tekst in het linkerpaneel en het rechterpaneel geeft je een JSON-array van elke gevonden URL.

De extractie leunt op een eenvoudige regex die http:// en https:// matcht, gevolgd door eender welke niet-witruimte tekens. Elke match wordt vervolgens ontdaan van slot-leestekens die bijna nooit deel uitmaken van een URL (punt, komma, puntkomma, sluitend haakje of vierkant haakje — het soort tekens dat overblijft als een zin op een link eindigt) en gevalideerd via de URL-constructor. Accepteert de constructor hem, dan is hij echt; gooit hij een fout, dan slaan we hem over. Dubbele worden verwijderd, met behoud van de volgorde — de eerste keer wint. De aanpak komt overeen met wat de WHATWG URL Standard "URL parsing" noemt en spoort met hoe JavaScript-regex doorgaans URL's detecteren.

De uitvoer is een JSON-array van strings, in de volgorde waarin de URL's verschenen. Stonden er geen URL's in de tekst, dan krijg je [] — lege array, geen fout, geen toast. Het hele zaakje draait in jouw browser. Niets wordt geüpload, niets gelogd. RFC 3986 is de onderliggende spec voor wat een geldige URL is, en de URL-constructor implementeert die.

Hoe gebruik je de extractor

Drie stappen. Elk komt overeen met een knop op deze pagina.

1

Plak de tekst of laad het voorbeeld

Gooi je tekst in het linkerpaneel — een e-mailbody, een logbestand, een transcript, een artikel, wat dan ook. Klik op Voorbeeld om een realistisch geval te laden: een interne teamnotitie met vier verspreide URL's. Voorbeeldinvoer:

Hoi team — bekijk de bestelling op https://api.shop.example.com/v1/orders/ORD-1001
en check ook even het dashboard https://admin.shop.example.com/dashboard?tab=orders.
De klant (Ava Chen) nam contact op via http://support.shop.example.com/tickets/T-4521 — zie ook onze docs op https://docs.shop.example.com/api/orders.

De extractor pakt alleen <code>http://</code>- en <code>https://</code>-URL's. Kale domeinen als <code>shop.example.com</code> zonder schema worden overgeslagen (te onduidelijk — kan een hostnaam, bestandsnaam of zomaar tekst zijn).

2

Lees de URL-array

Het rechterpaneel toont een JSON-array van URL's in documentvolgorde, dubbele weggehaald. Slot-leestekens die uit de omringende zin kwamen worden afgeknipt. Elke URL wordt gevalideerd door de URL-constructor — alles wat misvormd is wordt stil overgeslagen, dus de array bevat alleen echte, parsebare URL's.

3

Kopieer of download

Klik op Kopiëren om de JSON naar je klembord te sturen, of op Downloaden om hem als .json-bestand op te slaan. Verkleinen propt de array op één regel als je dat nodig hebt voor een logregel. Gebruik Wissen op de invoer om vers te beginnen.

Wanneer je dit echt gaat gebruiken

Audit van klantenservice-tickets

Een klant plakt een lange e-mailthread in een ticket. De agent (Marco Rivera) moet elke URL kennen waar de klant naar verwijst. Gooi de e-mailbody hier in, krijg de array, klik ze één voor één door. Scheelt vermoeide ogen van het scrollen en het risico dat je er een mist.

Een Slack- of Discord-export crawlen

Je hebt een channel geëxporteerd en wilt elke gelinkte resource door je linkchecker of archive-bot halen. De export is JSON of HTML, maar de URL's staan tussen tekst, emoji en metadata. Plak het hele zooitje hier en je hebt een schone URL-lijst klaar voor een fetch() in een loop.

Linkcheck vóór publicatie van blogposts en docs

Priya Patel staat op het punt een post van 4.000 woorden te publiceren en wil controleren of elke uitgaande link nog werkt. Plak de markdown-bron, krijg de URL-array, haal ze door een checker. Google's richtlijnen voor crawlbare links gaan ervan uit dat je links werken — kapotte schaden je ranking.

URL's uit gestructureerde logs trekken

In applicatielogs zitten vaak URL's in foutmeldingen, request-traces of referrer-velden. Onderzoek je een incident en moet je elke URL zien die in een venster van 5 minuten passeerde, plak de logslice en dedup. Vaak is die ge-dedupte lijst de snelste manier om die ene rare URL te vinden die de keten in gang zette.

Veelgestelde vragen

Pakt het ook ftp:// of mailto: of andere schema's?

Nee — alleen http:// en https://. Met "URL's extraheren" bedoelen mensen meestal weblinks, en de regex is bewust strak gehouden om valspositieven te voorkomen. Heb je andere schema's nodig, dan ondersteunt de WHATWG URL Standard ze wel, maar de detectie wordt vager (mailto:-adressen kunnen op tekst lijken, ftp: wordt nauwelijks meer gebruikt). Stuur een feature-request in als je echt zo'n use case hebt.

Hoe gaat het om met markdown-links als [tekst](https://example.com)?

Netjes. De regex vindt https://example.com binnen de haakjes en het wegknippen van slot-leestekens haalt het sluitende haakje weg. Zo haal je de kale URL eruit uit markdown, BBCode, HTML <a href> en de meeste andere syntaxen zonder formaat-specifieke parser.

Worden dubbele in volgorde gehouden of weggehaald?

Weggehaald, met behoud van de volgorde van de eerste keer. Komt https://shop.example.com drie keer voor in je tekst, dan staat hij één keer in de uitvoer, op de plek van de eerste keer. De dedup is een simpel Set-filter — zie MDN over Set.

En URL's met rare tekens — pipes, vierkante haakjes, ronde haakjes?

Pipes (|) en vierkante haakjes zijn geldig in URL's maar zeldzaam in echte URL's, dus de regex pakt ze zolang er geen witruimte voor staat. Sluitende vierkante en ronde haakjes helemaal aan het eind van een match worden afgeknipt omdat ze veel waarschijnlijker zinsleestekens zijn dan deel van de URL. Heb je een echte URL die op ) eindigt, dan accepteert de URL-constructor hem nog steeds — maar in de tekst moet je er een spatie achter zetten om het sluitende haakje vast te houden.

Is er een groottelimiet?

Ja — 1 MB. Dat zijn een paar duizend pagina's tekst, ruim voldoende voor elke e-mailthread, transcript of logslice die je realistisch zou plakken. Heb je een bestand van meerdere megabytes, splits het dan in stukken of laat het eerst door grep/ripgrep op de commandoregel lopen.

Werkt het offline?

Ja. Alles draait in je browser — de regex-match, de URL-validatie, de dedup. Het enige netwerkverkeer is de eerste pagina-load. Eenmaal open kun je je verbinding verbreken en het tool blijft het doen. De URL-constructor zit volgens de URL API in elke moderne browser ingebouwd.

Andere URL- en teksttools

Extraheren is één bewerking. Hier is wat er natuurlijk bij past: