Logo

MonoCalc

/

URL Extractor From Text

Text

Everything runs in your browser. No text is uploaded and no extracted link is ever requested or checked over the network.

Load a sample:

Text to scan

476 chars478 B
Drop a text, Markdown, HTML, CSV, JSON, XML or log file here

.txt, .md, .html, .htm, .csv, .log, .json, .xml, up to 5.00 MB, read in your browser

Shortcuts: Ctrl/Cmd + Enter extracts now, Ctrl/Cmd + Shift + C copies the result.

Extracted URLs

5 in output
fragment stripped

Total matches

5

before de-duplication

Unique URLs

5

0 duplicates removed

Unique domains

4

top: example.com

Insecure links

1

plain http://

Secure links

3

https only

Filtered out

0

removed by your filters

Rejected

0

looked like links but failed validation

Relative paths

0

no base URL to resolve against

Longest URL

84 chars

https://shop.example.com:8443/c…

Scanned

476 chars

5 lines · 478 B

What to match and how to shape it

Only addresses that already carry a scheme such as https:// or ftp://.
One URL per line.
Order of the final list.
Used to turn /about and //cdn.example.com into absolute links.
0 means unlimited, up to 1,00,000.

Domain and scheme filters

Comma separated. Wildcards allowed, e.g. github.com, *.gov.uk
Applied before the include list, so exclude always wins.
Leave empty to keep every scheme, e.g. http, https, mailto
Our docs live at https://monocalc.com/tool/text and the mirror is ftp://files.example.net/pub/docs. Read the changelog (https://github.com/mcdroid08/monocalc/releases) or just visit www.example.org. The campaign link is https://shop.example.com:8443/cart/checkout?item=42&utm_source=news&utm_medium=email#step2. Legacy assets are still on http://cdn.example.com/logo.png — we should move them. Config lives in app.config.json and the build script is deploy.sh, version v1.2.3.

Extracted

Removed by a filter

Rejected candidate

About This Tool

URL Extractor From Text – Harvest Every Link in One Pass

Links rarely arrive in a tidy column. They hide inside email bodies, chat exports, scraped HTML, server logs, research notes, sitemaps pasted as plain text and half-finished documentation. Finding them by eye is slow and unreliable, because addresses wrap across lines, sit inside href attributes, repeat with different casing and trail off into sentence punctuation. This URL extractor scans the whole block in one pass and hands back a clean, de-duplicated, sortable list of web addresses along with a structural breakdown of each one.

Anatomy of a URL

Every result is split into its parts so you can audit and filter them. In https://shop.example.com:8443/cart/checkout?item=42#step2 the scheme is https, the subdomain is shop, the registrable domain is example.com, the public suffix is com, the port is 8443, the path is /cart/checkout, the query carries item=42 and the fragment is step2. Multi-level suffixes are handled too, so news.bbc.co.uk reports a root domain of bbc.co.uk rather than co.uk.

Six ways to match a link

Strict URLs only accept strings that already carry a scheme — http://, https://, ftp://, file:// — which is the safest mode because it never guesses. Include bare domains also matches scheme-less hosts such as www.example.com. HTML attributes reads href, src, srcset, data-src, action and poster values out of markup. Markdown links pulls destinations from [text](url), reference definitions and autolinks, keeping the anchor text. Special schemes collects mailto:, tel:, sms:, magnet: and file: targets, promoting bare email addresses to mailto:. All patterns runs every matcher at once for the widest net.

Why bare-domain detection is a heuristic
A scheme-less token only counts as a host when its final label appears in the bundled top-level-domain list, which is what separates example.io from script.js. Filenames such as app.config.json and version strings like v1.2.3 are rejected, and every near miss is listed in the Rejected view with the reason, so nothing disappears silently.

Cleaning the list before you use it

Extraction is only half the job. Normalisation lowercases the host, drops the default ports :80 and :443, collapses duplicate slashes and removes a trailing slash, so three spellings of the same page collapse into one entry. Separate switches strip the fragment after #, the whole query string after ?, or just the tracking parametersutm_source, utm_medium, fbclid, gclid, mc_eid and igshid — which is the fastest way to turn a pile of campaign links back into canonical page addresses. Relative paths like /about and protocol-relative links like //cdn.example.com/lib.js become absolute as soon as you supply a base URL.

Filtering, sorting and formats

Include and exclude domain filters accept wildcards, so *.gov.uk keeps every government sub-domain while doubleclick.net drops an ad network; exclude is applied first, so it always wins. A scheme filter narrows the list to http, https or to mailto, tel when you are scraping a contact block. Results can be ordered by original position, alphabetically, by domain, by length or by how often each link appeared. The list then leaves in whatever shape the next system expects: a plain or numbered list, comma separated for a spreadsheet cell, JSON objects with the parsed parts, CSV rows, Markdown links, HTML anchors carrying rel="noopener noreferrer", or a domain summary with per-host counts and HTTPS ratios.

Extracted links are not verified links
The tool never makes a network request, so it cannot tell you whether an address is live, where it redirects, or whether it is safe. Plain http:// results are badged as insecure, and javascript:, data: and vbscript: URLs are only extracted when you opt in — they are never rendered as clickable anchors. Treat every link from an untrusted document, especially a suspected phishing email, as hostile until you have checked the destination domain yourself.

Auditing at a glance

Above the results sit counts for total matches, unique URLs, duplicates removed, unique domains, secure versus insecure links, rejected candidates and the longest address found. The domain view ranks hosts by link count with a share bar and an HTTPS ratio, which is exactly what an SEO outbound-link audit or a security review of a log dump needs. The highlighted source preview marks each match in place, so you can see what the matcher did and did not catch. Because the text may be a private email or an internal log, everything runs locally in your browser: nothing you paste, drop or extract ever leaves the page.

Frequently Asked Questions

Is the URL Extractor From Text free?

Yes, URL Extractor From Text is totally free :)

Can I use the URL Extractor From Text offline?

Yes, you can install the webapp as PWA.

Is it safe to use URL Extractor From Text?

Yes, any data related to URL Extractor From Text only stored in your browser (if storage required). You can simply clear browser cache to clear all the stored data. We do not store any data on server.

How does the URL extractor work?

Your text is scanned by a set of matchers — a scheme-anchored pattern for http, https, ftp and file links, a host pattern for scheme-less domains, attribute patterns for HTML markup, and link patterns for Markdown. Every candidate is trimmed of sentence punctuation, parsed with the browser's built-in URL engine, normalised according to your options, de-duplicated with an occurrence count and then filtered and sorted. The whole pipeline runs inside your browser tab, so nothing is uploaded.

Why are bare domains ignored by default?

Strict mode only accepts strings that already carry a scheme, because guessing is where false positives come from. Switch to Include bare domains and tokens such as www.example.com or support.example.co.uk are matched too, validated against a bundled top-level-domain list. That list is what stops app.config.json, deploy.sh and version numbers like v1.2.3 from being mistaken for links, and anything rejected is listed with the reason.

Can it read links out of HTML and Markdown?

Yes. HTML Attributes mode pulls values from href, src, srcset, data-src, action, poster and content attributes, and Markdown mode reads inline links, image links, reference definitions and angle-bracket autolinks, keeping the anchor text alongside each URL. Relative paths such as /about are resolved against the optional base URL you supply; without a base they are kept as-is and flagged as relative.

What does URL normalisation change?

Normalisation lowercases the host, removes the default ports :80 and :443, collapses duplicate slashes in the path and drops a trailing slash. Separate switches strip the fragment after #, the whole query string after ?, or just the tracking parameters — utm_*, fbclid, gclid, mc_eid, igshid and friends. The path, query values and letter case inside the path are never altered, because those parts can be case-sensitive on the server.

Are the extracted links checked or opened?

No. The tool never makes a network request, so it cannot tell you whether a link is live, redirects, or is safe to visit. Results are escaped before rendering, and javascript:, data: and vbscript: URLs are only extracted when you opt in, are never turned into clickable anchors and carry a warning badge. Treat any link from an untrusted document as untrusted.

How large an input can it handle?

Files up to 5 MB can be dropped on the page and the first 500,000 characters are scanned. For anything over roughly 30,000 characters, turn live extraction off and press Extract so the page stays responsive while you paste and edit. The highlighted source preview is trimmed to the first 20,000 characters, but extraction and the exports always cover the full scanned text.