Hent ut URL-er fra tekst
Plukk alle http/https-URL-er ut av enhver tekstklump til et JSON-array uten duplikater
Tekst
URL-er
Hva er URL-uttrekkeren?
Du har en e-posttråd på 200 linjer, en eksport fra en Slack-kanal, en loggfil, en supporttranskripsjon eller noen markdown-notater — og du vil ha alle URL-ene den nevner, i rekkefølge, uten duplikater, klare til å lime inn et annet sted. Kanskje sporer du hvilke lenker en kunde har klikket på. Kanskje skanner du et dokument for utgående henvisninger før publisering. Kanskje skal URL-ene mates til en crawler. Uansett, du gidder ikke scrolle og copy-paste 40 ganger. Slipp teksten i venstre panel, og høyre panel gir deg et JSON-array med alle URL-ene den fant.
Uthentingen hviler på et enkelt regex som matcher http:// og https:// etterfulgt av hvilke som helst ikke-blanke tegn. Hvert treff blir så trimmet for sluttegnsetting som nesten aldri er en del av en URL (punktum, komma, semikolon, parentes eller hakeparentes ut — den slags som henger med når en setning slutter på en lenke), og validert gjennom URL-konstruktoren. Aksepterer konstruktoren den, er den ekte; kaster den feil, hopper vi over. Duplikater fjernes mens rekkefølgen i dokumentet beholdes — første forekomst vinner. Tilnærmingen treffer det WHATWG URL Standard kaller "URL parsing", og ligger i tråd med hvordan JavaScript-regex vanligvis håndterer URL-detektering.
Output er et JSON-array med strenger, i den rekkefølgen URL-ene dukket opp. Var det ingen URL-er i teksten, får du [] — tomt array, ingen feil, ingen toast. Alt kjører i nettleseren din. Ingenting lastes opp, ingenting logges. RFC 3986 er den underliggende speccen for hva som teller som en gyldig URL, og URL-konstruktoren implementerer den.
Slik bruker du uttrekkeren
Tre steg. Hvert steg svarer til en knapp på siden.
Lim inn teksten eller hent eksempelet
Slipp teksten din i venstre panel — en e-postkropp, en loggfil, en transkripsjon, en artikkel, hva som helst. Klikk på Eksempel for å hente et realistisk tilfelle: et internt teamnotat med fire URL-er strødd utover. Eksempelinput:
Hei team — kan dere se på bestillingen på https://api.shop.example.com/v1/orders/ORD-1001
og også sjekke dashbordet https://admin.shop.example.com/dashboard?tab=orders.
Kunden (Ava Chen) tok kontakt via http://support.shop.example.com/tickets/T-4521 — se også dokumentasjonen vår på https://docs.shop.example.com/api/orders.Uttrekkeren fanger bare <code>http://</code>- og <code>https://</code>-URL-er. Bare domener som <code>shop.example.com</code> uten skjema hoppes over (de er flertydige — det kan være et hostnavn, et filnavn eller bare tekst).
Les URL-arrayet
Høyre panel viser et JSON-array med URL-er i dokumentrekkefølge, duplikater fjernet. Sluttegnsetting som ble med fra den omkringliggende setningen, blir kuttet bort. Hver URL valideres via URL-konstruktoren — alt som er feilformet, hoppes stille over, så arrayet inneholder bare ekte, parsbare URL-er.
Kopier eller last ned
Klikk Kopier for å sende JSON-en til utklippstavlen, eller Last ned for å lagre den som en .json-fil. Minifiser klemmer arrayet ned til én linje hvis du trenger det til en logg-linje. Bruk Tøm på input-siden for å starte med en tom tekstklump.
Når du faktisk vil bruke dette
Audit av supportsaker
En kunde limer inn en lang e-posttråd i en sak. Agenten (Marco Rivera) trenger å vite alle URL-ene kunden refererer til. Slipp e-postkroppen inn her, hent arrayet, klikk gjennom dem én etter én. Sparer øynene for scrollingen og deg for risikoen for å overse en.
Crawle en Slack- eller Discord-eksport
Du har eksportert en kanal og vil mate alle lenkede ressurser inn i lenkesjekkeren eller arkivboten din. Eksporten er JSON eller HTML, men URL-ene er blandet med tekst, emojier og metadata. Lim inn alt her, og du har en ren URL-liste klar for en fetch() i en løkke.
Lenke-audit før publisering av blogginnlegg og dokumentasjon
Priya Patel skal til å publisere et innlegg på 4 000 ord og vil verifisere at hver utgående lenke fortsatt virker. Lim inn markdown-kilden, hent URL-arrayet, kjør dem gjennom en sjekker. Googles veiledning om crawl-bare lenker går ut fra at lenkene dine virker — døde lenker straffer rangeringen.
Plukke URL-er ut av strukturerte logger
Applikasjonslogger har ofte URL-er gjemt i feilmeldinger, request-traces eller referrer-felter. Hvis du etterforsker en hendelse og må se alle URL-er som passerte i et 5-minutters vindu, lim inn loggsnittet og dedup. Ofte er den dedupliserte listen raskeste vei til å finne den ene rare URL-en som startet kaskaden.
Vanlige spørsmål
Fanger den ftp:// eller mailto: eller andre skjemaer?
Nei — bare http:// og https://. Web-lenker er det folk vanligvis mener med "hent ut URL-er", og regex-en er bevisst stram for å unngå falske treff. Trenger du andre skjemaer, støtter WHATWG URL Standard dem, men matchingen blir mer luddet (mailto:-adresser kan se ut som tekst, ftp: er sjeldent i dag). Send inn en feature-request hvis du faktisk har det use caset.
Hvordan håndterer den markdown-lenker som [tekst](https://example.com)?
Pent. Regex-en finner https://example.com inne i parentesen, og trimmingen av sluttegnsetting kutter sluttparentesen. Da får du den nakne URL-en ut av markdown, BBCode, HTML <a href> og de fleste andre omkringliggende syntaksene uten formatspesifikk parsing.
Beholdes duplikater i rekkefølge eller fjernes de?
Fjernes, med rekkefølgen for første forekomst beholdt. Hvis teksten din nevner https://shop.example.com tre ganger, dukker den opp én gang i output, på posisjonen til første forekomst. Dedupliseringen er et enkelt Set-filter — se MDN om Set.
Hva med URL-er med rare tegn — pipes, hakeparenteser, parenteser?
Pipes (|) og hakeparenteser er gyldige i URL-er, men sjeldne i ekte URL-er, så regex-en plukker dem så lenge de ikke har blanktegn foran seg. Lukkede hakeparenteser og parenteser helt på slutten av et treff trimmes vekk, fordi de mye oftere er setningstegn enn del av URL-en. Har du en ekte URL som slutter på ), vil URL-konstruktoren fortsatt akseptere den — men du må sette et mellomrom etter den i teksten for at sluttparentesen skal henge med.
Er det en størrelsesgrense?
Ja — 1 MB. Det tilsvarer flere tusen sider tekst, mer enn nok for hvilken som helst e-posttråd, transkripsjon eller loggsnitt du realistisk ville limt inn. Har du en fil på flere megabyte, del den i biter eller kjør den først gjennom grep/ripgrep på kommandolinjen.
Funker det offline?
Ja. Alt kjører i nettleseren din — regex-matchet, URL-valideringen, dedupliseringen. Den eneste nettverkstrafikken er den første sidelastingen. Når siden først er åpen, kan du koble fra og verktøyet fortsetter å virke. URL-konstruktoren er innebygget i alle moderne nettlesere i henhold til URL API.
Andre URL- og tekstverktøy
Å hente ut URL-er er én operasjon. Her er det som naturlig hører sammen med det: